private void menuItem1_Click(object sender, EventArgs e) {
lblHello.Text = "Здравствуй, мир!";
}
После запуска программы можно заметить, что созданный пункт меню располагается в нижней части экрана, в отличие от настольных приложений, в которых меню располагается в верхней части окна (рис. 2.6).
Рис. 2.6. Меню в нижней части окна
Следует отметить, что меню в приложениях для Pocket PC располагается не на форме, а на панели задач. Также на панели задач находится значок виртуальной клавиатуры SIP для ввода информации. Когда пользователь запускает приложение, то его меню появляется на панели задач. Но если удалить меню из формы, то при запуске программы панель задач вообще не будет отображаться (рис. 2.7).
Рис. 2.7. Экран без панели задач
Панель ввода SIP
В этой главе уже упоминалась виртуальная клавиатура. Большинство карманных компьютеров не имеют встроенных клавиатур для ввода информации. Вместо клавиатуры в этом случае используется специальная панель ввода SIP (Software Input Panel), которая позволяет вводить текст (рис. 2.8).
Рис. 2.8. Активированная панель ввода SIP
Для работы с виртуальной клавиатурой в .NET Compact Framework используется класс InputPanel
. Так как панель ввода находится на панели задач, то необходимо, чтобы панель задач была видимой. А ранее уже говорилось что, если форма не имеет меню, то панель задач будет невидима. В результате при попытке создания экземпляра класса InputPanel
на форме, не имеющей меню, будет отображено сообщение об ошибке.
Стилус вместо мыши
Подавляющее число пользователей настольной версии Windows пользуются мышью. В карманных компьютерах роль мыши выполняет стержень из пластика, называемый стилусом. Конечно, у стилуса нет правой кнопки для вызова контекстного меню. У него вообще кнопок нет.
Вместо кнопок в карманных компьютерах применяется технология Tap-and-Hold. Для выделения элемента управления пользователь должен точно попасть в него кончиком стилуса. По аналогии с мышью, можно легко щелкнуть по экрану (Click), а можно нажать на экран и удерживать стилус на месте (Press).
Глава 3
Элементы управления
Сходство и различия
Несмотря на свою схожесть, .NET Compact Framework уступает в функциональности базовой библиотеке .NET Framework. Это относится и к элементам управления. К счастью, кнопки, списки и текстовые поля все же присутствуют в мобильной версии. Кроме того, в .NET Compact Framework 2.0 была добавлена поддержка еще нескольких элементов управления, которые отсутствовали в NET Compact Framework 1.0.
Рис. 3.1. Свойства, поддерживаемые в .NET Compact Framework
Нужно помнить, что даже поддерживаемые элементы управления имеют порой ограниченные возможности. Чтобы узнать, какие свойства, методы или события не поддерживаются элементом управления, нужно запустить справочную систему, найти нужный класс и просмотреть все члены класса. Если нужное свойство поддерживается в .NET Compact Framework, то у его описания будет присутствовать значок мобильного устройства (рис. 3.1). В качестве примера можно открыть страницу с описанием класса Registry
. Легко заметить, что поля CurrentUser
, LocalMachine
и Users
поддерживаются в .NET Compact Framework, а поля DynData
и PerfomanceData
— нет.
Но даже если необходимый объект поддерживается в .NET Compact Framework, то все равно следует внимательно ознакомиться с его описанием. Например, поле LocalMachine
поддерживается только в NET Compact Framework 2.0, поэтому при разработке нужно решить, стоит ли использовать это поле (рис. 3.2).
Рис. 3.2. Просмотр поддержки версий .NET Compact Framework
В следующем списке перечислены элементы управления, которые не входят в состав классов библиотеки .NET Compact Framework 1.0:
□ CheckedListBox
;
□ ColorDialog
;
□ ErrorProvider
;
□ FontDialog
;
□ GroupBox
;
□ HelpProvider
;
□ LinkLabel
(поддерживается в .NET Compact Framework 2.0);
□ NotificationBubble
;
□ NotifyIcon
;
□ элементы управления, связанные с печатью;
□ RichTextBox
;
□ Splitter
(поддерживается в .NET Compact Framework 2.0).
В Compact .NET Framework 2.0 были добавлены новые элементы управления, которые перечислены в следующем списке.
□ MonthCalendar
— месячный календарь, позволяющий в наглядном виде выбрать необходимую дату.
□ DateTimePicker
— элемент для выбора даты и времени. Он достаточно компактен, что позволяет широко использовать его в приложениях.
□ WebBrowser
— элемент, который реализует функциональность браузера.
□ Notification
— элемент, с помощью которого приложение может посылать пользователю различные уведомления без остановки текущей запущенной программы. Уведомления могут отображаться как обычным текстом, так и в формате HTML.
□ DocumentList
— элемент управления, обеспечивающий стандартный механизм для управления файлами. Пример работы данного элемента можно увидеть при открытии файлов в приложениях Excel Mobile и Word Mobile. Элемент DocumentList
позволяет перемещаться по файловой системе и выполнять стандартные файловые операции.
□ DataGrid
— элемент для отображения данных в табличном виде. Теперь может использоваться и в приложениях для смартфонов.
□ LinkLabel
— элемент управления для создания гипертекстовых ссылок.
□ Splitter
— элемент управления, позволяющий изменять размеры других элементов.
□ HardwareButton
— элемент управления, позволяющий управлять кнопками карманного компьютера.
Урезанная функциональность элементов управления
Кроме отсутствия некоторых элементов управления, в .NET Compact Framework также была урезана функциональность имеющихся элементов. Наиболее часто употребляемые элементы управления с урезанной функциональностью приведены в следующем списке:
□ AcceptButton
;
□ CancelButton
;
□ AutoScroll
(поддерживается в .NET Compact Framework 2.0);
□ Anchor
(поддерживается в .NET Compact Framework 2.0);
□ элементы Multiple Document Interface (MDI);
□ KeyPreview
(поддерживается в .NET Compact Framework 2.0);
□ TabIndex
(поддерживается в .NET Compact Framework 2.0);
□ TabStop
(поддерживается в .NET Compact Framework 2.0).
Также наложены ограничения на технологию drag and drop и на поддержку графики. Во многих классах поддерживаются не все свойства, события и методы.
Однако в .NET Compact Framework 2.0 ограничений стало меньше. Например, элементы управления теперь обладают свойствами TabIndex
и TabStop
.
Элемент Form