- •Лекция №5 Тема: Графический пользовательский интерфейс (Graphic User Interface, gui)
- •Элементы управления
- •Провайдеры (паттерны) дополнительных свойств (extender providers)
- •Проверка данных, вводимых пользователем
- •Проверка на уровне поля
- •Проверка на уровне формы
- •Оповещение пользователя об ошибках ввода
Элементы управления
Основные элементы управления определены в сборке System.Windows.Forms.
Элементы управления – это графические инструменты, которые формируют функциональность формы. Кроме этого на форме могут располагаться компоненты (они не видимы пользователю).
Настройка внешнего вида и поведения происходит так же как для форм. Здесь все как Delphi, поэтому останавливаться отдельно не стоит. Отличие есть для компонентов, они размещаются не на самой форме, а в области компонентов внизу формы.
Некоторые элементы управления могут содержать другие элементы управления. Они называются контейнерами (container controls). К ним относятся Panel, GroupBox, TabControl. Форму также можно считать контейнером. Изменение свойств контейнера отражается на вложенных элементах. Например изменение свойства Enabled контейнера автоматически меняет доступность вложенных элементов.
GroupBox и Panel очень похожи, но у GroupBox есть заголовок, а у Panel может быть полоса прокрутки. TabControl позволяет упорядочить элементы управления, размещая их на разных вкладках с ярлычками. У этого элемента есть свойство TabPages, определяющий набор элементов TabPage, каждый из которых соответствует отдельной странице (по сути элементу Panel).
Меню
Меню создается с помощью компонента MainMenu. Редактирование внешнего меню аналогично созданию меню в Delphi. Можно создавать подменю, можно вставлять разделители (separators). Можно организовать доступ к командам меню с клавиатуры с помощью клавиш доступа (access keys) – для этого в имени меню перед буквой, которая будет соответствовать клавише доступа нужно поставить знак & (амперсанд) и с помощью быстрых клавиш (shortcut keys) – они определяются с помощью свойства Shortcut.
Свойства с произвольно задаваемыми значениями (на некоторые из них все-таки есть ограничения)
Свойства с предопределенным набором значений:
Составные свойства:
Свойства со встроенным редактором:
Также можно создавать контекстные меню, которые появляются при нажатии правой клавиши мыши. Для этого существует элемент ContextMenu. В остальном принцип создания такой же.
Можно создавать меню с флажками, позволяющими отметить некоторые элементы меню. Для этого существует свойство Checked. Если вместо флажка требуется отобразить переключатель, то нужно установить свойство RadioCheck в true.
Таблица 2. Описание интерфейса самого окна Properties.
Окно Properties позволяет определять в первую очередь дизайн формы и ее элементов управления. Описание некоторых свойств формы, обычно определяемых в режиме дизайна. При выборе значения свойства, отличного от принятого по умолчанию, оно выделяется жирным шрифтом, что облегчает в дальнейшем определение изменений.
Провайдеры (паттерны) дополнительных свойств (extender providers)
Это специальные компоненты, расширяющие набор свойств элементов управления. К ним относятся ToolTipProvider, HelpProvider и ErrorProvider. При добавлении этих компонентов на форму, все остальные элементы управления приобретают дополнительные свойства. Имя этого свойства <Имя_свойства> on <имя_компонента>. Например, если добавить компонент HelpProvider с именем myHelpProvider, то у элемента управления myButton появятся дополнительные свойства.
HelpKeyword on myHelpProvider – ключевое слово, характеризующее данный элемент. Оно обычно используется при обработке события HelpRequested срабатывающего при нажатии F1 либо при использовании курсора-вопроса.
HelpNavigator on myHelpProvider – перечисление, характеризующее тип вызываемой справки
HelpString on myHelpProvider – текст всплювающей подсказки для элемента управления
ShowHelp on myHelpProvider – свойство логического типа, определяющее будет ли отображаться всплывающая подсказка.
Экземпляр данного компонента размещается на форме автоматически при ее создании.
Компонент ToolTip предназначен для отображения всплывающих подсказок. У данного компонента есть свойства для настройки интервалов отображения подсказок. К элемента управления добавляется свойство ToolTip on …
На самом деле свойства, предоставляемые компонентами-провайдерами содержаться в этих компонентах, а не в элементах управления, чьи возможности они расширяют. Более того это не свойство, а пара методов GetNNN и SetNNN, где NNN – имя предоставляемого свойства. Например, GetToolTip и SetToolTip. У всех этих методов первый параметр обычно типа System.Windows.Form.Control – базовый класс для всех элементов управления. У методов Set еще один параметр для передачи нового значения свойства.
