Добавлять текстовые элементы в 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.
Читать дальше