Реализация обработчика событий Click для элемента Файл->Выход просто завершает работу приложения, а обработчик событий Click для Справка->О программе отображает окно сообщения MessageBox.
private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit; }
private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("My StatusStripApp!"); }
Обработчики событий MouseHover, отображающие подходящие подсказки в левой панели StatusStrip, мы с вами обновим немного позже. Пока что оставьте их пустыми.
Настройка StatusStrip
Добавьте в окно проектирования формы элемент управления StatusStrip и поменяйте имя этого элемента управления на mainStatusStrip. Следует понимать, что по умолчанию StatusStrip не содержит вообще никаких панелей. Для добавления трех панелей можно использовать разные подходы.
• Создать необходимый программный код вручную, без помощи инструментов проектирования (возможно, с помощью вспомогательного метода CreateStatusStrip, вызываемого в рамках конструктора формы).
• Добавить нужные элементы в диалоговом окне, появляющемся при выборе ссылки Edit Items (Редактирование элементов) из меню контекстного редактора StatusStrip (см. рис. 19.17).
• Добавить нужные элементы по одному с помощью раскрывающегося меню новых элементов StatusStrip (рис. 19.18).
Мы используем раскрывающееся меню новых элементов. С помощью этого меню добавьте два новых типа ToolStripStatusLabel, назначив им имена toolStripStatusLabelMenuState и toolStripStatusLabelClock, и тип ToolStripDropDownButton с именем toolStripDropDownButtonDateTime. Как и следует ожидать, в результате этого в файл *.Designer.cs будут добавлены новые члены-переменные и соответственно обновлен метод InitializeComponent.
Рис. 19.17. Контекстный редактор StatusStrip
Риc. 19.18. Добавление элементов с помощью раскрывающегося меню новых элементов StatusStrip
Заметьте, что StatusStrip поддерживает внутреннюю коллекцию для представления всех созданных панелей.
partial class MainForm {
private void InitializeComponent {
…
//
// mainStatusStrip
//
this.mainStatusStrip.Items.AddRange(
new System.Windows.Forms.ToolStripItem[] { this.toolStripStatusLabelMenuState, this.toolStripStatusLabelClock, this.toolStripDropDownButtonDateTime });
…
}
private System.Windows.Forms.StatusStrip mainStatusStrip;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelMenuState;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabelClock;
private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButtonDateTime;
…
}
Теперь в окне проектирования формы выберите ToolStripDropDownButton и добавьте два новых элемента меню День недели и Текущее время, соответственно назначив им имена dayoftheWeekToolStripMenuItem и currentTimeToolStripMenuItem (рис. 19.19).
Рис. 19.19. Добавление пунктов меню для элемента ToolStripDropDownButton
Чтобы настроить панели так, как показано на рис. 19.19, нужно установить подходящие значения для соответствующих свойств в окне свойств Visual Studio 2005. В табл. 19.12 для элементов StatusStrip предлагаются описания свойств, которые нужно установить, и событий, которые нужно обработать (вы, конечно, можете настроить панели так, как сочтете необходимым).
Значение свойства Image члена toolStripDropDownButtonDateTime может указывать на любой файл с изображением, размещенный на вашей машине (при этом, конечно, следует учитывать то, что слишком большие файлы изображений могут порождать проблемы). Для нашего примера вы можете использовать файл happyDude.bmp, предлагаемый вместе с загружаемым исходным кодом для этой книги (посетите раздел загрузки Web-узла Apress, размещенный по адресу.
Таблица 19.12. Конфигурация панелей StatusStrip