Элемент ComboBox образует выпадающий список и совмещает функциональность компонентов ListBox и TextBox. Для хранения элементов списка в ComboBox также предназначено свойство Items.
Подобным образом, как и с ListBox, мы можем в окне свойств на свойство Items и нам отобразится окно для добавления элементов ComboBox:
И как и с компонентом ListBox, здесь мы также можем программно управлять элементами.
Добавление элементов:
// добавляем один элемент comboBox1.Items.Add("Парагвай"); // добавляем набор элементов comboBox1.Items.AddRange(new string[] { "Уругвай", "Эквадор" }); // добавляем один элемент на определенную позицию comboBox1.Items.Insert(1, "Боливия");
При добавлении с помощью методов Add / AddRange все новые элементы помещаются в конец списка. Однако если мы зададим у ComboBox свойство
Sorted
равным true
, тогда при добавлении будет автоматически производиться сортировка.
Удаление элементов:
// удаляем один элемент comboBox1.Items.Remove("Аргентина"); // удаляем элемент по индексу comboBox1.Items.RemoveAt(1); // удаляем все элементы comboBox1.Items.Clear();
Мы можем получить элемент по индексу и производить с ним разные действия. Например, изменить его:
comboBox1.Items[0] = "Парагвай";
С помощью ряда свойств можно настроить стиль оформления компонента. Так, свойство DropDownWidth задает ширину выпадающего списка. С помощью свойства DropDownHeight можно установить высоту выпадающего списка.
Еще одно свойство MaxDropDownItems позволяет задать число видимых элементов списка - от 1 до 100. По умолчанию это число равно 8.
Другое свойство DropDownStyle задает стиль ComboBox. Оно может принимать три возможных значения:
Dropdown: используется по умолчанию. Мы можем открыть выпадающий список вариантов при вводе значения в текстовое поле или нажав на кнопку со стрелкой в правой части элемента, и нам отобразится собственно выпадающий список, в котором можно выбрать возможный вариант
DropdownList: чтобы открыть выпадающий список, надо нажать на кнопку со стрелкой в правой стороне элемента
Simple: ComboBox представляет простое текстовое поле, в котором для перехода между элементами мы можем использовать клавиши клавиатуры вверх/вниз
Наиболее важным событием для ComboBox также является событие SelectedIndexChanged
, позволяющее отследить выбор элемента в списке:
public partial class Form1 : Form { public Form1() { InitializeComponent(); comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged; } void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { string selectedState = comboBox1.SelectedItem.ToString(); MessageBox.Show(selectedState); } }
Здесь также свойство SelectedItem
будет ссылаться на выбранный элемент.