Добавлять текстовые элементы в ComboBox
можно как в режиме проектирования, так и программно во время работы программы.
В листинге 3.4 приведен пример добавления пунктов программным путем. Для этого нужно вызвать метод Add
в свойстве коллекции Items
элемента ComboBox
. Отдельные пункты можно удалять с помощью метода Remove
, а чтобы удалить все пункты сразу, применяется метод Clear
. Приведенный пример показывает, как можно добавить три строки в элемент ComboBox
с именем comboBox1
.
Листинг 3.4
comboBox1.Items.Add("Мурзик");
comboBox1.Items.Add("Барсик");
comboBox1.Items.Add("Рыжик");
Чтобы узнать, какой элемент выбрал пользователь, применяется свойство SelectedIndex
или SelectedItem
. Свойство SelectedIndex
возвращает порядковый номер выбранного пункта. Этот номер можно использовать для доступа к выбранному пункту при помощи свойства Items
. Следует помнить, что нумерация элементов начинается с нуля. Пример работы со свойством SelectedIndex
приведен в листинге 3.5. Также в этом листинге показано, как можно получить доступ к выбранному пункту при помощи свойства SelectedItem
.
Листинг 3.5
// Получим выделенный пункт с помощью SelectedIndex
string selItem = (string)cmbCats.Items[cmbCats.SelectedIndex];
MessageBox.Show(selItem);
// Второй способ - получим пункт с помощью
SelectedItem string selItem = cmbCats.SelectedItem.ToString();
MessageBox.Show(selItem);
В полной версии .NET Framework у элемента ComboBox
для свойства DropDownStyle
можно задавать значения Simple
, DropDownList
или DropDown
. В .NET Compact Framework
значение Simple
не используется. До выхода .NET Compact Framework 2.0 также не поддерживалось и значение DropDown
. Кроме того, по умолчанию в .NET Compact Framework применяется значение DropDownList
, тогда как в полной версии .NET Framework по умолчанию используется стиль DropDown
. Также не поддерживаются многие методы из основной версии библиотеки. В .NET Compact Framework 2.0 у поля со списком появилась поддержка методов BeginUpdate
и EndUpdate
, которые позволяют избежать мерцания при загрузке большого числа элементов.
ВНИМАНИЕ
Внешний вид и поведение элемента ComboBox в смартфонах немного отличается от аналогичных элементов в КПК. Более подробно об отличиях будет рассказано в соответствующей главе.
Элемент ComboBox
хорош для приложений с ограниченными пространствами формы, а список ListBox
можно использовать, если на экране достаточно места для отображения всех пунктов списка. Список ListBox
сразу показывает все имеющиеся элементы списка, при необходимости добавляя вертикальную полоску прокрутки, если все элементы списка не могут быть отображены одновременно.
Элементы ComboBox
и ListBox
имеют почти одинаковый набор свойств и методов. В листинге 3.6 показано, как можно программно добавить несколько строк в список ListBox
.
Листинг 3.6
lstFruit.Items.Add("Яблоко");
lstFruit.Items.Add("Груша");
lstFruit.Items.Add("Слива");
lstFruit.Items.Add("Персик");
Свойство SelectedIndex
содержит порядковый номер выбранного элемента списка. Если указать этот индекс в коде приложения, то выбранный элемент будет немедленно выделен в списке соответствующим цветом. Если никакой элемент не выбран, то свойство SelectedIndex
имеет значение -1. Также класс поддерживает свойство SelectedItem
, которое соответствует одноименному свойству класса ComboBox
.
Из часто используемых свойств элемента ListBox
в полной версии NET Framework можно выделить свойство MultiColumn
, которое не поддерживается в .NET Compact Framework. В нем отсутствует горизонтальная полоска прокрутки, даже если строки текста не умещаются в списке полностью. Также не поддерживается многострочное выделение, поэтому пользователь может выбрать только один элемент списка.
Элемент NumericUpDown
позволяет создавать счетчик с числовым полем ввода. Такой элемент интерфейса помогает пользователю быстро выбрать число из заданного диапазона. Элемент может работать только с целыми числа типа Integer
. Десятичные значения округляются.
Разработчик управляет поведением элемента NumericUpDown
при помощи свойств Minimum
, Maximum
, Value
и Increment
. Свойства Minimum
и Maximum
определяют максимальное и минимальное значения элемента. Свойство Value
содержит текущее значение в поле ввода. Свойство Increment
определяет величину увеличения или уменьшения значения в поле, когда пользователь нажимает кнопки со стрелками. Текущее значение всегда увеличивается и уменьшается на значение свойства Increment
, даже если результат выходит за диапазон, определенный свойствами Minimum
и Maximum
.
Читать дальше