В самостоятельной работе 8 написано: "В пункте "Server name" задаем имя сервера, которое необходимо узнать у преподавателя". Где узнать это имя? |
Создание элементов управления
Переключатели и группирующие рамки
Тип RadioButton (переключатель) можно воспринимать, как несколько видоизмененный флажок при этом сходство между этими типами подчеркивается почти полным совпадением наборов членов. Между типами RadioButton и CheckBox существуют лишь два важных различия: в RadioButton предусмотрено событие CheckedChanged (возникающее при изменении значения Checked ), а кроме того, RadioButton не поддерживает свойство ThreeState и не может принимать состояние Indeterminate (не определено).
Переключатели всегда используются в группах, которые рассматриваются как некое единое целое. Внутри группы переключателей одновременно может быть выбран только один переключатель. Для группировки переключателей в группы используется тип GroupBox.
И флажок ( CheckBox ), и переключатель ( RadioButton ) поддерживают свойство Checked, при помощи которого очень удобно получать информацию о состоянии соответственно флажка и переключателя. Однако если есть необходимость задействовать дополнительное третье состояние флажка (не определено - Indeterminate ), то придется вместо Checked использовать свойство CheckState и значения из одноименного перечисления CheckState.
Элемент управления CheckedListBox
Типы Button, CheckBox и RadioButton являются производными от ButtonBase, и их можно определить как некие разновидности кнопок. К членам семейства списков относятся CheckedListBox (список с флажками), ListBox (список) и ComboBox (комбинированный список).
Элемент управления CheckedListBox (список с флажками) позволяет помещать обычные флажки внутри поля с полосами прокрутки.
Кроме того, в элементе управления CheckedListBox предусмотрена возможность использования нескольких столбцов. Для этого достаточно установить значение true для свойства MultiColumn.
CheckedListBox наследует большинство своих возможностей от типа ListBox. To же самое справедливо и в отношении класса ComboBox. Наиболее важные свойства System.Windows.Forms.ListBox представлены в таблице 7.8.
Свойство | Назначение |
---|---|
ScrollAlwaysVisible | Определяет, будет ли полоса прокрутки выводиться всегда |
Selectedlndex | Индекс выделенного в настоящий момент элемента в списке (если такой имеется). Если ни один элемент не выделен, то возвращается значение -1 |
SelectedIndices | Набор индексов выделенных в настоящий момент элементов в списке. Если не выделен ни один элемент, то возвращается пустой набор |
SelectedItem | Значение выделенного в настоящий момент элемента. Если ни один из элементов не выделен, то возвращается null |
SelectedItems | Возвращает коллекцию значений выделенных элементов (для списков, в которых допускается выбор нескольких значений) |
SelectionMode | Определяет число элементов, которые возможно выбрать в списке одновременно. Для этого свойства используются значения из перечисления SelectionMode |
Sorted | Определяет, будут ли элементы в списке упорядочены (по алфавиту) или нет |
TopIndex | Возвращает индекс первого видимого элемента в списке |
Помимо свойств в классе ListBox определены также многочисленные методы. Подавляющее большинство этих методов дублирует возможности, предоставляемые в наше распоряжение свойствами, поэтому мы их рассматривать не будем.
Комбинированные списки
Как и списки (объекты ListBox ), комбинированные списки (объекты ComboBox ) позволяют пользователю производить выбор из списка заранее определенных элементов. Однако у комбинированных списков есть одно существенное отличие от обычных: пользователь может не только выбрать готовое значение из списка, но и ввести свое собственное. Класс ComboBox наследует большинство своих возможностей от класса ListBox (который, в свою очередь, является производным от Control ), однако в нем предусмотрены и собственные важные свойства, представленные в таблице 7.9.
Свойство | Назначение |
---|---|
DroppedDown | "Раскрывающийся вниз": определяет, будет ли список ниспадающим |
MaxDropDownltems | Определяет максимальное количество элементов, которое будет показано в нижней части ниспадающего списка. Допустимые значения - от 1 до 100 |
MaxLength | Определяет максимальную длину текста, который пользователь может ввести в ComboBox |
Selectedlndex | Определяет индекс выделенного элемента ComboBox. Если ни один элемент не выделен, возвращается значение -1 |
Selectedltem | Возвращает ссылку на объект выделенного элемента ComboBox |
SelectedText | Возвращает выделенный текст в поле редактирования ComboBox |
SelectionLength | Определяет длину (в символах) выделенного текста в поле редактирования ComboBox |
Style | Позволяет получить или установить стиль ComboBox. Для этого свойства используются значения из перечисления ComboBoxStyle |
Text | Позволяет получить доступ к тексту в поле редактирования. При работе с ComboBox это унаследованное свойство используется чаще всех остальных |
Стиль для ComboBox можно настроить при помощи свойства Style, для которого используются значения из перечисления ComboBoxStyle (таблица 7.10).
Значение | Описание |
---|---|
DropDown | Пользователь может вводить значения в поле редактирования. Для отображения списка пользователь должен нажать на кнопку со стрелкой, направленной вниз ( Arrow Button ) |
DropDownList | Пользователь не может вводить значения в поле редактирования. Для отображения списка пользователь должен нажать на кнопку со стрелкой, направленной вниз ( Arrow Button ) |
Simple | Пользователь может вводить значения в поле редактирования. Список значений виден всегда |
Порядок перехода по Tab
Если на форме размещено несколько элементов управления, то пользователи обычно ожидают, что между ними можно будет перемещаться с помощью клавиши Tab. Часто бывает необходимо после размещения элементов управления настроить порядок перехода между ними. Для этого используются два свойства (унаследованные от базового класса Control и поэтому общие для всех элементов управления): TabStop и Tablndex. Для свойства TabStop используются только два значения: true и false. Если для TabStop установлено значение true, то к этому элементу управления можно будет добраться с помощью клавиши Tab. Если же установлено значение false, то участвовать в переходах по Tab этот элемент управления не будет. Если элемент управления TabStop имеет значение true, то очередность перехода можно настроить с помощью свойства Tablndex:
В Visual Studio.NET предусмотрено средство, при помощи которого можно быстро настроить порядок перехода для элементов управления на форме. Это средство называется Tab Order Wizard и оно доступно из меню View (View > Tab Order). Чтобы изменить значения TabIndex для каждого элемента управления, достаточно просто щелкать мышью на элементах управления в выбранном нами порядке перехода. Для элементов управления, помещенных в группирующую рамку, Tab Order Wizard создает отдельную последовательность перехода.
Элемент управления MonthCalendar
В пространстве имен System.Windows.Forms предусмотрен элемент управления, при помощи которого пользователь может выбрать дату или диапазон дат, используя дружественный и удобный интерфейс. Это элемент управления MonthCalendar.
Наиболее важные свойства MonthCalendar представлены в табл. 7.11.
Свойство | Назначение |
---|---|
BoldedDates | Массив объектов DateTime, выделенных подсветкой |
CalendarDimensions | Определяет количество выводимых строк и столбцов |
FirstDayOfWeek | Определяет, с какого дня будет начинаться неделя в MonthCalendar |
MaxDate | Самая поздняя дата, которую разрешается выбрать пользователю (по умолчанию ограничений нет) |
MaxSelectionCount | Максимальное количество дат, которое одновременно может выбрать пользователь |
MinDate | Самая ранняя дата, которую разрешается выбрать пользователю (по умолчанию ограничений нет) |
MonthlyBoldedDates | Массив выделенных подсветкой объектов DateTime для месяца |
SelectionRange | Диапазон выделенных объектов |
SelectionEnd | Самая поздняя дата в диапазоне выделенных объектов |
SelectionStart | Самая ранняя дата в диапазоне выделенных объектов |
ShowToday | Определяет, будет ли MonthCalendar выводить информацию о текущей дате |
ShowTodayCircle | Определяет, будет ли MonthCalendar выводить информацию о текущей дате в нижней части и выделять ее в календаре обводкой |
ShowWeekNumbers | Определяет, будет ли MonthCalendar отображать номера недель справа от каждой строки |
TodayDate | Дата, которая будет считаться MonthCalendar сегодняшней. По умолчанию TodayDate - это системная дата на момент создания объекта MonthCalendar |
TodayDateSet | Определяет, можно ли пользователю по своему усмотрению выбирать сегодняшнюю дату. Если для этого свойства установлено значение true, пользователь может выбрать в качестве сегодняшней ( TodayDate ) любое число |
По умолчанию всегда выделяется (и подсветкой, и обводкой) текущая дата. Пользователь может выбрать другую дату - в этом и есть смысл графического интерфейса MonthCalendar.
Можно получить дату, выбранную пользователем в MonthCalendar, при помощи свойства SelectionStart. Это свойство возвращает ссылку на объект DateTime, которая хранится в специальной переменной ( d ) При помощи набора свойств типа DateTime можно извлечь всю необходимую информацию в нужном нам формате.
При помощи свойств Month, Day и Year можно извлечь из объектов DateTime нужную информацию и сформировали текстовые строки. Это вполне допустимый подход. Дело в том, что дату в необходимом текстовом формате проще получить из DateTime при помощи специальных "форматирующих" свойств самих объектов DateTime. Набор таких свойств (и некоторые методы) представлен в таблице 7.12.
При помощи вышеперечисленных членов можно значительно упростить вывод текстовой информации о дате.
Элемент управления Panel
Назначение элемента управления Panel (панель) - с его помощью можно объединить прочие элементы управления на форме. Panel происходит от базового класса ScrollableControl и поддерживает полосы прокрутки.
Элементы управления Panel обычно используются для экономии пространства на форме. Например, если элементы управления, которые планируем разместить на форме, на ней не умещаются, то можно поместить их внутрь Panel и установить для свойства AutoScrol1 объекта Panel значение true. В результате пользователь получит возможность доступа к "не вмещающимся" элементам управления с помощью полос прокрутки.
Всплывающие подсказки (ToolTips)
Большинство приложений с современным пользовательским интерфейсом поддерживают всплывающие подсказки. В приложениях .NET эта возможность реализуется при помощи типа System.Windows.Forms.ToolTip. ToolTip (всплывающие подсказки) - это небольшие окна с текстом, появляющиеся при наведении указателя мыши на элемент управления на форме. Наиболее важные члены класса ToolTip представлены в таблице 7.13.
Член | Назначение |
---|---|
Active | Определяет, будет ли всплывающая подсказка активной. Возможность отключить всплывающие подсказки может быть полезной, например, если в приложении предусмотрено два варианта интерфейса: для обычных и для опытных пользователей |
AutomaticDelay | Позволяет получить или установить время задержки (в миллисекундах) при появлении подсказки |
AutoPopDelay | Время (в миллисекундах), в течение которого подсказка остается видимой, если указатель мыши неподвижен и находится в области, занимаемой соответствующим элементом управления. По умолчанию это значение равно 10 значениям AutomaticDelay |
GetTooltip( ) | Возвращает текст подсказки |
InitialDelay | Время (в миллисекундах), в течение которого указатель должен оставаться неподвижным в соответствующей области для появления подсказки. Значение по умолчанию равно значению AutomaticDelay |
ReshowDelay | Время (в миллисекундах), в течение которого появится другая подсказка при перемещении указателя мыши от одного элемента управления к другому. По умолчанию это значение равно 1/5 от значения AutomaicDelay |
SetToolTip( ) | Ассоциирует подсказку с элементом управления |
Для того чтобы настроить использование всплывающих подсказок для элементов управления можно сделать это с помощью графических средств Visual Studio.
Первое, что необходимо сделать - добавить на форму объект ToolTip, выбрав его в ТооlBох. Затем можно указать текст всплывающей подсказки для любого элемента управления на форме (в том числе и для самой формы) из окна свойств данного элемента.