Чтение онлайн

на главную - закладки

Жанры

Программирование КПК и смартфонов на .NET Compact Framework

Климов Александр Петрович

Шрифт:
Листинг 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 {

Поделиться:
Популярные книги

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Отчий дом. Семейная хроника

Чириков Евгений Николаевич
Проза:
классическая проза
5.00
рейтинг книги
Отчий дом. Семейная хроника

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Путанабус. Трилогия

Старицкий Дмитрий
Фантастика:
боевая фантастика
6.93
рейтинг книги
Путанабус. Трилогия

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Кодекс Крови. Книга ХVI

Борзых М.
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVI

Проданная невеста

Wolf Lita
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Проданная невеста

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

С Д. Том 16

Клеванский Кирилл Сергеевич
16. Сердце дракона
Фантастика:
боевая фантастика
6.94
рейтинг книги
С Д. Том 16

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

От Советского Информбюро - 1941-1945 (Сборник)

Неизвестен 3 Автор
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
От Советского Информбюро - 1941-1945 (Сборник)

Санек 3

Седой Василий
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 3

Прометей: повелитель стали

Рави Ивар
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Прометей: повелитель стали

Отмороженный 14.0

Гарцевич Евгений Александрович
14. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Отмороженный 14.0