Создание Windows-приложений на основе Visual C#

         

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.  Строка состояния с двумя панелями


Содержание раздела