ИСТОЧНИК: http://tipsntricksbd.blogspot.com/2007/12/combobox-is-one-of-most-common-gui.html
ComboBox является одним из наиболее распространенных элементов графического интерфейса.Он используется для предоставления пользователю возможности выбора элемента из списка или ввода нового текста.Здесь я покажу вам некоторые общие и полезные функции ComboBox в C # с использованием Microsoft Visual Studio .Net 2005.
Простейший ComboBox:
В простейшем случае мыдобавьте несколько строк в список, например:
myComboBox.Items.Add("Bangladesh");
myComboBox.Items.Add("India");
myComboBox.Items.Add("Pakistan");
myComboBox.Items.Add("Srilanka");
myComboBox.Items.Add("Maldives");
myComboBox.Items.Add("Nepal");
myComboBox.Items.Add("Bhutan");
Sorted List:
Обычно пользователи ожидают, что параметры будут показаны в отсортированном порядке.Для этого нам нужно добавить одну строку кода -
myComboBox.Sorted = true;
DropDownStyle:
В ComboBox пользователь может либо ввести текст, либо просто выбратьпункт из списка.Поэтому разработчик должен установить свой стиль.Доступно 3 варианта:
ComboBoxStyle.DropDownList: User can just select one item from a list.
ComboBoxStyle.DropDown: User can either type a text or select an item from list.
ComboBoxStyle.Simple: User can only type a text in text box. Item list is not shown.
Пример:
myComboBox.DropDownStyle = ComboBoxStyle.DropDown;
Предложение / словарь:
Когдапользователь вводит текст, он / она становится счастливым, если некоторые предложения отображаются сразу под полем со списком во время набора текста.Для этой функции нам нужно написать пару строк:
myComboBox.AutoCompleteSource = AutoCompleteSource.ListItems;
myComboBox.AutoCompleteMode = AutoCompleteMode.Suggest;
Трюк:
Может быть случай, когда пользователь выбирает некоторый читаемый текст, но дляпрограммисту важно соответствующее значение (а не выделенный текст).Например, в проекте базы данных StudentID для программиста важнее, чем StudentName.Таким образом, было бы неплохо, если бы мы могли добавить комбинацию (Имя, Значение) в поле со списком, и во время выбора имени мы могли бы легко получить соответствующее значение.
Мы можем сделать это, добавив объект, содержащий Имяи значение.
class ComboBoxItem
{
public string Name;
public int Value;
public ComboBoxItem(string Name, int Value)
{
this.Name = Name;
this.Value = Value;
}
}
myComboBox.Items.Add(new ComboBoxItem("Ashis Saha",1));
myComboBox.Items.Add(new ComboBoxItem("Subrata Roy", 2));
myComboBox.Items.Add(new ComboBoxItem("Aminul Islam", 3));
myComboBox.Items.Add(new ComboBoxItem("Shakibul Alam", 4));
myComboBox.Items.Add(new ComboBoxItem("Tanvir Ahmed", 5));
Но если вы теперь видите список ComboBox, вы заметите, что все элементы одинаковы, и они являются именами классов этих объектов.Фактически, элементы - это не что иное, как результат функции ToString () этих объектов.Поэтому, если мы просто переопределим функцию ToString (), чтобы она соответствовала нашим ожиданиям, мы закончили.
class ComboBoxItem
{
public string Name;
public int Value;
public ComboBoxItem(string Name, int Value)
{
this.Name = Name;
this.Value = Value;
}
// override ToString() function
public override string ToString()
{
return this.Name;
}
}
Вы можете получить выбранное значение следующим образом -
int selectedValue = ((ComboBoxItem)myComboBox.SelectedItem).Value;