Элементы управления знакомы нам по палитре компонентов 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.2Private 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, то на экран будет выведена подсказка, с какими еще событиями можно связать данную процедуру.