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

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

Жанры

Программирование для карманных компьютеров

Волков Владимир

Шрифт:

Элементы управления знакомы нам по палитре компонентов eVB и eVC. Отметим только, что появились три новых компонента – ContextMenu, InputPanel и StatusBar. Их назначения и основные свойства будут рассматриваться в следующих разделах главы. ContextMenu

Контекстное меню – это меню, всплывающее, когда вы удерживаете перо Pocket PC нажатым на каком-либо экранном объекте. Меню обеспечивает легкий доступ к операциям, часто выполняемым с выбранным объектом. Процесс создания контекстного меню мало отличается от процесса создания основного меню.

Чаще всего при работе с контекстным меню используют свойство MenuItems, которое содержит в себе коллекцию пунктов контекстного меню и позволяет изменять эту коллекцию не только во время дизайна, но и во время выполнения программы.

Основным событием контекстного меню является Popup, событие, срабатывающее при выводе контекстного меню на экран.

InputPanel

Этот компонент инкапсулирует в себе некоторые важные аспекты функционирования SIP (Software Input Panel),

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

Одним из основных свойств этого компонента является свойство Enabled. Оно позволяет выводить и скрывать панель, а также определять, в каком состоянии она находится. Обычно панель выводится в обработчике события GotFocus компонента, который нуждается в текстовом вводе, а скрывается в обработчике события LostFocus. Свойство VisibleDesktop задает область экрана, которая не занята в данный момент панелью. Оно позволяет динамически менять размер или положение видимых элементов приложения так, чтобы они не скрывались панелью.

StatusBar

Это обычная строка состояния формы. Свойство Text содержит выводимый в строку состояния текст, а свойство Font – параметры шрифта.

Обработчики событий элементов управления

Двойной щелчок на любом из элементов управления во время дизайна автоматически генерирует обработчик события, наиболее важного для данного элемента. Например, двойной щелчок на элементе StatusBar формирует в коде формы следующую процедуру, код которой приведен в листинге 6.2.

Листинг 6.2

Private Sub StatusBar1_ParentChanged(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles StatusBar1.ParentChanged

\'Здесь мы вводим код обработчика

End Sub

А теперь попробуем переписать это код так, как показано в листинге 6.3. Листинг 6.3

Private Sub Nyam_nyam(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles StatusBar1.ParentChanged

\'Здесь мы вводим код обработчика

End Sub

Эта функция все равно останется работоспособной. Это говорит о том, что имя процедуры не имеет значения. Процедура связана с событием не именем, а параметром Handles, расположенным в конце объявления, и набором передаваемых параметров. Если установить текстовый курсор после точки, так, как это показано на рис. 6.8, и нажать на клавиатуре сочетание клавиш Ctrl+Space, то на экран будет выведена подсказка, с какими еще событиями можно связать данную процедуру.

Рис. 6.8. Изменение привязки процедуры обработки события.

К сожалению, если мы выберем из списка событие, к примеру KeyDown, то получим сообщение об ошибке Method \'StatusBar1_ParentChanged\' cannot handle Event \'KeyDown\' because they do not have the same signature. Это связано с тем, что в обработчики разных событий передаются разные аргументы и сигнатура не может быть одинакова для всех обработчиков. В этом случае надо щелчком мыши в редакторе кода перевести текстовый курсор в слово KeyDown, и правой кнопкой мыши вызвать контекстное меню. Из контекстного меню необходимо выбрать команду Go To Definition, при помощи которой курсор будет перенесен в место определения данного события в окне Object Browser (рис. 6.9).

Рис. 6.9. Событие KeyDown в окне Object Browser.

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

Большинство элементов управления во время дизайна формы выглядят так же, как и во время выполнения программы. Разработчик помещает их на форму и позиционирует при помощи мыши. При помощи мыши разработчик может изменять их размер. Но есть несколько элементов управления, которые или невидимы во время выполнения программы, или поведение и отображение их во время выполнения отличается от поведения и отображения во время дизайна. К ним относятся: MainMenu, Timer, ImageList, ContextMenu, OpenFileDialog, SaveFileDialog и InputPanel. При добавлении к проекту эти компоненты не помещаются на форму, а располагаются на специальной области в нижней части дизайнера форм (рис. 6.10).

Рис. 6.10. Размещение невидимых элементов управления на специальной панели.

Упражнение 6.2

1. Создать новый проект Smart Device Application и сохранить его с именем MyTime. Тип приложения должен быть Windows Application, а платформа – Pocket PC, как и в предыдущем упражнении. В среде будет создан новый проект.

2. В графическом редакторе нужно создать несколько рисунков и сохранить их в каталоге программы с именами, указанными в табл. 6.4.

Таблица 6.4. Рисунки для приложения

3. Выделить

форму в дизайнере форм щелчком мыши по заголовку. В правой нижней части рабочего стола Visual Studio нужно найти окно инспектора свойств Properties, предназначенное для редактирования свойств выделенного объекта. Если щелчок на форме не выделил ее, то можно просто выбрать имя формы Form1 из выпадающего списка в верхней части окна Properties. В инспекторе свойств нужно найти свойство Text и изменить его значение, введя строку Мое время. Соответствующая надпись должна появиться в заголовке формы.

4. Прежде чем продолжать заниматься дизайном и кодированием проекта, необходимо настроить некоторые его параметры. Из пункта меню Project следует выбрать команду MyTime Properties. Затем нужно выделить папку Common Properties и выбрать в этой папке группу настроек Device. В правой части окна в строку Output file folder следует ввести значение \Windows\Start Menu, а затем нажать кнопку OK. Таким образом указывается папка, в которую на эмуляторе или устройстве будет осуществляться поставка приложения.

5. На следующем этапе создается пиктограмма приложения. Для этого в том же окне настроек параметров проекта и в той же папке Common Properties нужно выбрать группу настроек Build. С правой стороны в поле Application Icon нужно нажать кнопку редактирования и загрузить графический файл с полным именем C: \Program Files\Microsoft Visual Studio.NET 2003\Common7\Graphics\icons\Misc\ CLOCK06.ICO. Загруженный значок будет скопирован в каталог программы. В окне Solution Explorer нужно выбрать этот файл, а затем в окне Properties установить для него значение свойства Build Action равным Embedded Resource. Это делается для того, чтобы значок был вкомпилирован в код программы, а не поставлялся в виде отдельного файла.

6. На форме нужно разместить элементы управления и установить при помощи инспектора свойств значения их свойств согласно табл. 6.5.

Таблица 6.5. Элементы управления основной формы

В результате выполнения этих действий форма должна обрести вид, показанный на рис. 6.11.

Рис. 6.11. Форма с размещенными элементами управления.

7. Поместить на форму элемент управления ListView. Задать для него значения свойств, приведенные в табл. 6.6. Таблица 6.6. Свойства элемента ListView

8. Выбрать в окне Properties свойство Columns и в поле значения нажать кнопку вызова редактора свойства. На экран будет выведено окно редактирования столбцов компонента ListView (рис. 6.12).

Рис. 6.12. Окно редактирования набора столбцов компонента ListView.

9. Нажимая кнопку Add, добавить четыре столбца с параметрами, указанными в табл. 6.7. Таблица 6.7. Колонки компонента ListView

После добавления столбцов нужно нажать кнопку OK.

10. Щелкнуть на компоненте MainMenu1, расположенном в области размещения невидимых компонентов. В нижней части формы появится область редактирования этого меню (рис. 6.13). В ней нужно ввести слово Файл, как это показано на рисунке.

Рис. 6.13. Редактирование названия первого пункта меню.

11. Сохранить проект. Из выпадающего списка Deployment Device нужно выбрать значение Pocket PC 2003 Emulator, а из выпадающего списка Solution Configurations значение Debug. Затем командой меню Debug ? Start нужно запустить проект. По этой команде будет запущен эмулятор и в него будет загружена сначала среда выполнения. NET, а затем загружена и запущена программа.

12. Поскольку наша программа должна не только отображать записи (для этого на форму был помещен элемент ListView), но и выполнять с ними операции редактирования, то нужно будет выводить на экран еще одно диалоговое окно. Соответственно, его следует разработать.

13. Выполнить команду Project ? Add Windows Form. На экран будет выведено окно добавления к проекту нового элемента. По умолчанию в окне выделена именно форма, поэтому можно сразу нажать кнопку Open, и к проекту будет добавлена форма Form2.vb.

14. Разместить на добавленной к проекту форме невидимые компоненты MainMenu и InputPanel.

15. Разместить на форме Form2 компоненты согласно табл. 6.8.

Таблица 6.8. Элементы управления формы редактирования

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

Черный дембель. Часть 2

Федин Андрей Анатольевич
2. Черный дембель
Фантастика:
попаданцы
альтернативная история
4.25
рейтинг книги
Черный дембель. Часть 2

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

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

Магия чистых душ 3

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Магия чистых душ 3

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Измена. Возвращение любви!

Леманн Анастасия
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Возвращение любви!

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Таня Гроттер и магический контрабас

Емец Дмитрий Александрович
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Таня Гроттер и магический контрабас

Имперский Курьер

Бо Вова
1. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Имперский Курьер

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Сердце дракона. Танец с врагом

Серганова Татьяна
2. Танец с врагом
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Сердце дракона. Танец с врагом