C# Combobox (Dropdownstyle = Simple) - как выбрать элемент при вводе
У меня есть элемент управления Combobox в моей форме (WinForms, .NET 3.5), и его свойство DropDownStyle установлено в Simple. Допустим, он заполняется буквами алфавита в виде строковых объектов ("a", "b", "c" и т. Д.).
Когда я набираю букву в поле ввода в поле со списком, правильный элемент будет отображаться прямо под ним.
Это поведение, которое я хочу. Но я также хотел бы выбрать первый соответствующий элемент.
Есть ли свойство элемента управления Combobox, которое бы этого достигло? Или мне нужно заниматься этим программно?
1 ответ
В зависимости от ваших потребностей, вы можете рассмотреть возможность использования элемента управления TextBox и настройки свойств автозаполнения (например, AutoCompleteMode и AutoCompleteCustomSource)
Трудность, с которой вы столкнетесь, заключается в том, что после выбора элемента (программно) текст в поле со списком изменится. Делая что-то вроде этого:
private void comboBox1_TextChanged(object sender, EventArgs e)
{
for(int i=0; i<comboBox1.Items.Count; i++)
{
if (comboBox1.Items[i].ToString().StartsWith(comboBox1.Text))
{
comboBox1.SelectedIndex = i;
return;
}
}
}
может выполнить то, что вы хотите (с точки зрения выбора), но это также сразу же изменит текст пользователя.