ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Рис. 21.11. Тип ListBox
Как всегда, начните с создания члена-переменной для работы с типом (в данном случае это тип ListBox). Затем сконфигурируйте элемент управления в соответствии со следующим фрагментом из InitializeComponent.
Изменения
Элемент ComboBox
Подобно ListBox, тип ComboBox (комбинированное окно) позволяет пользователю сделать выбор из вполне определенного набора возможностей. Однако тип ComboBox уникален в том, что пользователю также позволяется вставить дополнительные элементы. Напомним, что ComboBox получается из ListBox (а последний, в свою очередь, получается из Control). Для иллюстрации возможностей использования рассматриваемого элемента добавьте в форму приложения CarConfig еще один элемент управления, который позволит ввести имя продавца, с которым пользователь предпочитает иметь дело. Если имени нужного продавца в списке нет, пользователь может ввести соответствующее имя. Одна из возможных модификаций интерфейса показана на рис 21.12 (можете назначить продавцам такие имена, какие захотите).
Рис. 21.12. Тип ComboBox
Соответствующая модификация начинается с настройки самого ComboBox. Как видите, используемая здесь программная логика аналогична логике ListBox.
Модификация обработчика событий btnOrder_Click снова оказывается очень простой.
Порядок
переходов по нажатию клавиши табуляцииТеперь, когда вы создали достаточно интересную форму, давайте рассмотрим проблему порядка переходов по нажатию клавиши табуляции. Вы, наверное, знаете, что в том случае, когда форма содержит множество элементов графического интерфейса, пользователь может переместить фокус ввода от одного элемента к другому, используя клавишу табуляции. Настройка порядка переходов по табуляции для набора элементов управления требует понимания сути двух ключевых свойств: TabStop и TabIndex.
Свойству TabStop можно присвоить значение true (истина) или false (ложь), в зависимости от того, хотите вы или нет, чтобы соответствующий элемент графического интерфейса был доступен по нажатию клавиши табуляции. Если свойству TabStop данного элемента управления присвоено true, то свойству TabOrder устанавливается значение (начиная с нуля), соответствующее порядку активизации этого элемента управления в последовательности нажатий клавиш табуляции. Рассмотрите следующий пример.
Мастер настройки переходов по табуляции
В Visual Studio 2005 IDE есть мастер настройки переходов по табуляции, доступ к которому можно получить с помощью выбора View->Tab Order из меню (этот пункт меню доступен только при активном окне проектирования формы). После активизации мастера ваша форма в режиме проектирования будет отображать текущие значения TabIndex всех элементов, Чтобы изменить эти значения, щелкните на порядковом номере выбранного вами элемента (рис. 21.13). Чтобы выйти из мастера настройки переходов по табуляции, достаточно нажать ‹Esc›.
Рис. 21.13. Мастер настройки переходов по табуляции
Установка кнопки, выбираемой по умолчанию
Многие формы, предназначенные для пользовательского ввода (особенно диалоговые окна), предполагают наличие кнопки, которая автоматически отвечает на нажатие пользователем клавиши ‹Enter›. Если вы хотите, чтобы при нажатии пользователем клавиши ‹Enter› в нашей форме автоматически вызывался обработчик события Click для btnOrder, просто установите свойство AcceptButton формы так, как показано ниже.
Замечание. В форме можно также имитировать щелчок на кнопке Cancel (Отмена) при нажатии пользователем клавиши ‹Esc›. Для этого нужно назначить свойству CancelButton имя объекта Button, представляющего кнопку Cancel (Отмена).
Работа с другими элементами управления
Итак, мы с вами выяснили, как работать большинством базовых элементов управления Windows Forms (Label, TextBox, и т.д.). Следующей задачей будет рассмотрение элементов графического интерфейса, обладающих более сложными функциональными возможностями. К счастью, только то, что элемент управления выглядит "более экзотическим", обычно означает не то, что с таким элементом будет трудно работать, а то, что вам потребуется немного больше времени на его освоение. На следующих нескольких страницах мы рассмотрим следующие элементы графического интерфейса.