C # Combobox (Dropdownstyle = Simple) - как выбрать элемент при вводе - PullRequest
4 голосов
/ 10 февраля 2009

В моей форме есть элемент управления Combobox (WinForms, .NET 3.5), а его свойство DropDownStyle установлено на Простой . Допустим, он заполняется буквами алфавита в виде string объектов ("a", "b", "c" и т. Д.).
Когда я набираю букву в поле ввода в поле со списком, правильный элемент будет отображаться прямо под ним.

Это поведение, которое я хочу. Но я также хотел бы выбрать первый соответствующий элемент.

Есть ли свойство элемента управления Combobox, которое бы этого достигло? Или мне нужно заниматься этим программно?

1 Ответ

2 голосов
/ 10 февраля 2009

В зависимости от ваших потребностей, вы можете рассмотреть возможность использования элемента управления 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;
        }
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...