Чтение онлайн

на главную - закладки

Жанры

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Троелсен Эндрю

Шрифт:

вы увидите многоколоночный CheckedListBox, как показано на рис. 21.10.

Рис. 21.10. Многоколоночный тип CheckedListBox

Элемент Listbox

Как уже упоминалось выше, тип CheckedListBox наследует большинство своих возможностей от типа ListBox (окно списка). Чтобы продемонстрировать возможности использования типа ListBox, давайте добавим в наше приложение CarConfig возможность выбора пользователем марки автомобиля (BMW, Yugo и т.д.). Нa рис. 21.11 показан внешний

вид того пользовательского интерфейса, который мы хотим получить.

Рис. 21.11. Тип ListBox

Как всегда, начните с создания члена-переменной для работы с типом (в данном случае это тип ListBox). Затем сконфигурируйте элемент управления в соответствии со следующим фрагментом из InitializeComponent.

private void InitializeComponent {

 …

 // carMakeList

 //

 this.carMakeList.Items.AddRange(new object[] {"BMW", "Caravan", "Ford", "Grand Am", "Jeep", "Jetta", "Saab", "Viper", "Yugo"});

 …

 this.Controls.Add(this.carMakeList);

}

Изменения обработчика событий btnOrder_Click также очень просты.

private void btnOrder_Click(object sender, EventArgs e) {

 // Построение строки для отображения информации.

 string orderInfo = "";

 …

 // Получение выбранного элемента (не индекса!).

 if (carMakeList.SelectedItem != null) orderInfo += "Марка: " + carMakeList.SelectedItem + "\n";

 …

}

Элемент ComboBox

Подобно ListBox, тип ComboBox (комбинированное окно) позволяет пользователю сделать выбор из вполне определенного набора возможностей. Однако тип ComboBox уникален в том, что пользователю также позволяется вставить дополнительные элементы. Напомним, что ComboBox получается из ListBox (а последний, в свою очередь, получается из Control). Для иллюстрации возможностей использования рассматриваемого элемента добавьте в форму приложения CarConfig еще один элемент управления, который позволит ввести имя продавца, с которым пользователь предпочитает иметь дело. Если имени нужного продавца в списке нет, пользователь может ввести соответствующее имя. Одна из возможных модификаций интерфейса показана на рис 21.12 (можете назначить продавцам такие имена, какие захотите).

Рис. 21.12. Тип ComboBox

Соответствующая модификация начинается с настройки самого ComboBox. Как видите, используемая здесь программная логика аналогична логике ListBox.

private void InitializeComponent {

 …

 // comboSalesPerson

 //

 this.comboSalesPerson.Items.AddRange(new object[] {"Малышка Би-Би", "Дэн \' Машина\'", "Джой Колесо", "Тимон Фара"});

 …

 this.Controls.Add(this.comboSalesPerson);

}

Модификация

обработчика событий btnOrder_Click снова оказывается очень простой.

private void btnOrder_Click(object sender, EventArgs e) {

 // Построение строки для отображения информации.

 string orderInfo = "";

 // Использование свойства Text для имени продавца,

 // указанного пользователем.

 if (comboSalesPerson.Text != "") orderInfo += "Продавец: " + comboSalesPerson.Text + "\n";

 else orderInfo += "Вы не указали имя продавца!" + "\n";

 …

}

Порядок переходов по нажатию клавиши табуляции

Теперь, когда вы создали достаточно интересную форму, давайте рассмотрим проблему порядка переходов по нажатию клавиши табуляции. Вы, наверное, знаете, что в том случае, когда форма содержит множество элементов графического интерфейса, пользователь может переместить фокус ввода от одного элемента к другому, используя клавишу табуляции. Настройка порядка переходов по табуляции для набора элементов управления требует понимания сути двух ключевых свойств: TabStop и TabIndex.

Свойству TabStop можно присвоить значение true (истина) или false (ложь), в зависимости от того, хотите вы или нет, чтобы соответствующий элемент графического интерфейса был доступен по нажатию клавиши табуляции. Если свойству TabStop данного элемента управления присвоено true, то свойству TabOrder устанавливается значение (начиная с нуля), соответствующее порядку активизации этого элемента управления в последовательности нажатий клавиш табуляции. Рассмотрите следующий пример.

// Настройка свойств табуляции.

radioRed.TabIndex = 2;

radioRed.TabStop = true;

Мастер настройки переходов по табуляции

В Visual Studio 2005 IDE есть мастер настройки переходов по табуляции, доступ к которому можно получить с помощью выбора View->Tab Order из меню (этот пункт меню доступен только при активном окне проектирования формы). После активизации мастера ваша форма в режиме проектирования будет отображать текущие значения TabIndex всех элементов, Чтобы изменить эти значения, щелкните на порядковом номере выбранного вами элемента (рис. 21.13). Чтобы выйти из мастера настройки переходов по табуляции, достаточно нажать ‹Esc›.

Рис. 21.13. Мастер настройки переходов по табуляции

Установка кнопки, выбираемой по умолчанию

Многие формы, предназначенные для пользовательского ввода (особенно диалоговые окна), предполагают наличие кнопки, которая автоматически отвечает на нажатие пользователем клавиши ‹Enter›. Если вы хотите, чтобы при нажатии пользователем клавиши ‹Enter› в нашей форме автоматически вызывался обработчик события Click для btnOrder, просто установите свойство AcceptButton формы так, как показано ниже.

Поделиться:
Популярные книги

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

О, мой бомж

Джема
1. Несвятая троица
Любовные романы:
современные любовные романы
5.00
рейтинг книги
О, мой бомж

Возвышение Меркурия. Книга 2

Кронос Александр
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Возвышение Меркурия. Книга 2

Вы не прошли собеседование

Олешкевич Надежда
1. Укротить миллионера
Любовные романы:
короткие любовные романы
5.00
рейтинг книги
Вы не прошли собеседование

Метаморфозы Катрин

Ром Полина
Фантастика:
фэнтези
8.26
рейтинг книги
Метаморфозы Катрин

Эволюция мага

Лисина Александра
2. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эволюция мага

Попаданка для Дракона, или Жена любой ценой

Герр Ольга
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Попаданка для Дракона, или Жена любой ценой

Истинная поневоле, или Сирота в Академии Драконов

Найт Алекс
3. Академия Драконов, или Девушки с секретом
Любовные романы:
любовно-фантастические романы
6.37
рейтинг книги
Истинная поневоле, или Сирота в Академии Драконов

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Возвышение Меркурия. Книга 17

Кронос Александр
17. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 17

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

Волков. Гимназия №6

Пылаев Валерий
1. Волков
Фантастика:
попаданцы
альтернативная история
аниме
7.00
рейтинг книги
Волков. Гимназия №6

Картофельное счастье попаданки

Иконникова Ольга
Фантастика:
фэнтези
5.00
рейтинг книги
Картофельное счастье попаданки