Выбрать главу

Стиль Separator позволяет создавать разделители между кнопками на панели управления. Стиль ToggleButton позволяет создавать переключаемую кнопку. При первом нажатии она переходит в активированное состояние, в котором и остается до тех пор, пока кнопку не нажмут повторно.

Итак, панель инструментов уже готова, хотя еще не было написано ни одной строчки кода. При щелчке на кнопках элемента ToolBar возникает событие ButtonClick. В листинге 3.12 приведен код, обрабатывающий нажатие первых двух кнопок.

Листинг 3.12

private void toolBar1_ButtonClick(object sender,

 ToolBarButtonClickEventArgs e) {

 if (e.Button == this.toolBarButton1) {

  MessageBox.Show("Вы выбрали первую кнопку");

 } else if (e.Button == this.toolBarButton2) {

  MessageBox.Show("Вы выбрали вторую кнопку");

 }

}

Элемент MainMenu

Меню является одним из самых важных элементов графического интерфейса Windows-приложений. Не являются исключением и программы для мобильных устройств. По умолчанию на форме уже присутствует элемент MainMenu. Но при добавлении в проект новой формы на ней меню не появляется, и его нужно добавить вручную.

Следует помнить, что в приложениях для Pocket PC меню располагается в нижней части окна программы, тогда как в приложениях для обычных компьютеров меню располагается в верхней части окна. Если в программе одновременно присутствуют меню и панель инструментов, то они будут отображаться вместе. Но меню будет прижато к левой границе окна, а панель инструментов — к правой. Пример работы с меню приведен в листинге 3.13.

Листинг 3.13

private void mnuAboutClick(object sender, EventArgs e) {

 MessageBox.Show("Это моя программа!");

}

private void mnuExitClick(object sender, EventArgs e) {

 this.Close();

}

Элемент ContextMenu

Элемент ContextMenu позволяет создавать контекстные меню для других элементов интерфейса. Этот элемент очень похож на элемент управления MainMenu. Но если MainMenu всегда связан с формой приложения, то ContextMenu можно связать с любым элементом формы. Так как в КПК не используется мышь, то вызов контекстного меню вызывается операцией tap-and-hold вместо привычного щелчка правой клавишей мыши.

ВНИМАНИЕ

Если вы пользуетесь эмулятором, то для имитации tap-and-hold нужно щелкнуть левой кнопки мыши и не отпускать ее некоторое время.

Чтобы добавить элемент ContextMenu в приложение, нужно сначала переместить его значок на форму. Он появится в нижней части редактора Form Designer, там же, где и элемент MainMenu. Но на самом деле во время выполнения программы контекстное меню будет отображаться рядом с выбранным элементом интерфейса. Также контекстное меню можно создавать программно во время запуска приложения.

При вызове контекстного меню инициируется событие Popup. Когда пользователь выбирает какой-то пункт меню, то возникает событие Click. Чтобы привязать созданное контекстное меню к конкретному элементу интерфейса, нужно выбрать его на форме и в свойстве ContextMenu указать созданное контекстное меню.

ПРИМЕЧАНИЕ

До выхода .NET Compact Framework 2.0 элемент управления ContextMenu не поддерживал свойство ContextMenu.SourceControl

Элемент Timer

Элемент Timer позволяет выполнять некоторые действия по истечении заданных интервалов времени. Чаще всего для работы с таймером разработчик применяет событие Tick. Данное событие инициируется только в том случае, если свойство Enabled имеет значение True. Если нужно остановить таймер, то достаточно присвоить данному свойству значение False.

Интервал отсчета времени задается свойством Interval, а его значение указывает используемый промежуток времени в миллисекундах. Если рабочий интервал таймера должен составлять 3 с, то надо установить значение 3000.

Этот элемент управления уже применялся при работе с объектом ProgressBar.

Элементы OpenFileDialog и SaveFileDialog

Практически в каждом приложении пользователь должен иметь возможность сохранить файл или открыть его. Разработчикам регулярно приходится реализовывать подобную функциональность в своих программах. При желании можно самому придумать и разработать интерфейс для подобной задачи. Но можно воспользоваться и стандартными диалоговыми окнами открытия и сохранения файла. Именно для этого применяются элементы управления OpenFileDialog и SaveFileDialog. К сожалению, в версии .NET Compact Framework возможности данных элементов управления серьезно урезаны. Разработчик может манипулировать файлами только в пределах папки My Documents и вложенных папок следующего уровня. Поэтому папка My Documents\Programming\Sample будет уже недоступна.

Рассматриваемые элементы управления размещаются в нижней части дизайнера формы рядом с элементом MainMenu. При работе с данными элементами прежде всего надо позаботиться о свойстве Filter, которое ограничивает список доступных файлов, фильтруя их по расширению. Свойство InitalDirectory содержит имя папки, в которой по умолчанию располагаются файлы. Если это свойство оставить пустым, то обзор файлов начнется с самой папки My Documents.

Основным методом для этих элементов является ShowDialog. После его вызова на экране отображается модальное окно, в котором пользователь должен нажать кнопку OK или Cancel. При этом метод ShowDialog возвращает значения DialogResult.OK и DialogResult.Cancel соответственно. Если получено значение DialogResult.OK, то пользователь нажал кнопку OK и в свойстве Filename содержится полный путь к выбранному файлу.

Пример работы с элементами OpenFileDialog и SaveFileDialog приведен в листинге 3.14.

Листинг 3.14

private void butOpen_Click(object sender, EventArgs e) {

 ofd.Filter = "DLL|*.dll|Картинки|*.jpg";

 ofd.InitialDirectory = "\\My Documents\\Templates";

 if (DialogResult.OK == ofd.ShowDialog()) {

  statusBar1.Text = ofd.FileName;

 } else {

  statusBar1.Text = "Вы нажали на кнопку Отмена!";

 }

}