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;
        }
    }
}

может выполнить то, что вы хотите (с точки зрения выбора), но это также сразу же изменит текст пользователя.

Другие вопросы по тегам