Лекция: StatusBar

Элемент управления StatusBar применяется в программах для вывода информации в строку состояния — небольшую полоску, расположенную внизу приложения. В Microsoft Word, например, на ней отображается количество страниц, язык ввода, состояние проверки правописания и другие параметры. Добавим к приложению Notepad C# строку состояния, на которой осуществляется подсчет вводимых символов и выводится системное время.

Добавляем на форму blank элемент управления StatusBar. Удаляем содержимое поля свойства Text. В поле свойства Panels щелкаем на кнопку (…). Открывается StatusBarCollectionEditor, в котором мы создаем панели для отображения. Создайте две панели, дважды щелкая на кнопке Add, и установите им следующие свойства (измененные значения выделяются жирным шрифтом) (рис. 2.20 и рис. 2.21):


Рис. 2.20.Свойства панели sbAmount


Рис. 2.21.Свойства панели sbTime

Значения некоторых свойств панели приводятся в таблице 2.2.

Таблица 2.2.
Свойство Значение
Alignment Выравнивание содержимого свойства Text на панели
AutoSize Изменение размеров панели по содержимому
BorderStyle Внешний вид панели – утопленная, приподнятая или без выделения
Icon Добавление иконки
Style Стиль панели
Text Текст, располагаемый на панели
ToolTipText Всплывающая подсказка — появляется при наведении курсора на панель
Width Ширина панели в пикселях
Name Название панели для обращения к ней в коде

Свойства панели, назначаемые в окне редактора StatusBarCollectionEditor, можно изменять в коде —именно так мы сейчас и поступим.

После завершения работы над панелями закрываем редактор. Свойству ShowPanels элемента управления StatusBarустанавливаем значение True. На форме немедленно отображаются две панели.

Выделяем элемент управления RichTextBox, в окне его свойств переключаемся на события и создаем обработчик для события TextChanged:

private void richTextBox1_TextChanged(object sender, System.EventArgs e)

{

//Свойству Text панели sbAmount устанавливаем надпись «Аmount of symbols»

//и длину текста в RichTextBox.

sbAmount.Text = «Аmount of symbols» + richTextBox1.Text.Length.ToString();

}

Свойство Text панели sbAmount мы изменяем программно: даже если бы мы ничего не написали в окне редактораStatusBarCollectionEditor, при возникновении события TextChanged на панели появится надпись.

Займемся теперь второй панелью — той, на которую будем выводить системное время. В конструкторе формы blank добавляем код:

public blank()

{

InitializeComponent();

//Свойству Text панели sbTime устанавливаем системное время,

// конвертировав его в тип String

sbTime.Text = Convert.ToString(System.DateTime.Now.ToLongTimeString());

//В тексте всплывающей подсказки выводим текущую дату

sbTime.ToolTipText = Convert.ToString(System.DateTime.Today.ToLongDateString());

}

Запускаем приложение. Панель с выводимым временем располагается достаточно необычно (рис. 2.22), при необходимости для вывода времени в привычном правом нижнем углу можно добавить третью пустую панель.


Рис. 2.22.Строка состояния с двумя панелями

еще рефераты
Еще работы по информатике