Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 470

Эндрю Троелсен

 currentCheckedItem.Checked = false;

 …

 if (miClicked.Name == "hugeToolStripMenuItem") {

  currFontSize = TextFontSize.FontSizeHuge;

  currentCheckedItem = hugeToolStripMenuItem;

 }

 if (miClicked.Name = "normalToolStripMenuItem") {

  currFontSize = TextFontSize.FontSizeNormal;

  currentCheckedItem = normalToolStripMenuItem;

 }

 if (miClicked.Name == "tinyToolStripMenuItem") {

  currFontSize = TextFontSize.FontSizeTiny;

  currentCheckedItem = tinyToolStripMenuItem;

 }

 // Установка отметки выбора для нового элемента.

currentCheckedItem.Checked = true;

 …

}

На рис. 19.15 показан законченный проект MenuStripApp в действии.

Исходный код. Проект MenuStripApp размещен в подкаталоге, соответствующем главе 19.

Рис. 19.15. Установка и удаление отметок выбора для элементов ToolStripMenuItem

Работа с StatusStrip

В дополнение к системе меню многие формы предлагают поддержкустроки состояния, которая обычно размещается в нижней части формы. Строка состояния может делиться на любое число "панелей" с текстовой (или графической) информацией, содержащей пояснения для пунктов меню, текущее время или специальные данные приложения.

Хотя поддержка строк состояния (с помощью типа System.Windows.Forms. StatusBar) предлагается с момента появления платформы .NET, в .NET 2.0 вместо простого элемента StatusBar предлагается использовать новый тип StatusStrip. Подобно обычной строке состояния, StatusStrip может состоять из любого числа панелей, содержащих текстовые/графические данные, предоставленные типом ToolStripStatus. Однако StatusStrip может содержать и дополнительные элементы, например, следующего вида.

• ToolStripProgressBar – встроенный индикатор выполнения (хода задания).

• ToolStripDropDownButton – встроенная кнопка, отображающая при щелчке на ней раскрывающийся список вариантов выбора.

• ToolStripSplitButton – подобен ToolStripDropDownButton, но отображает элементы раскрывающегося списка только тогда, когда пользователь щелкает непосредственно в области раскрывающегося списка. ToolStripSplitButton предлагает также поведение, аналогичное обычной кнопке, и поэтому может поддерживать обработку события Click.

Для примера мы построим новый объект MainWindow, в котором поддерживается простое меню (Файл→Выход и Справка→О программе) и StatusStrip. Левая панель строки состояния будет использоваться для отображения строковых данных, соответствующих выбранному в настоящий момент элементу меню (например, при выборе пользователем элемента Выход в строке будет отображаться "Выход из приложения").

Средняя часть строки состояния будет отображать одну из двух динамически создаваемых значений, соответствующих текущему времени и текущей дате. Наконец, правая часть строки состояния будет представлять тип ToolStripDropDownButton, позволяющий пользователю переключиться с отображения даты на отображение времени и наоборот (да еще и с пиктограммой счастливого лица в придачу!). На рис. 19.16 показано окно приложения в своем окончательном варианте.

Рис. 19.16. Приложение StatusStrip