У меня есть a ComboBox
на приложении winforms с этим кодом:
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
DataTable t = new DataTable();
t.Columns.Add("ID", typeof(int));
t.Columns.Add("Display", typeof(string));
for (int i = 1; i < 2000; i++)
{
t.Rows.Add(i, i.ToString("N0"));
}
comboBox1.DataSource = t;
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Display";
Я затем выполняю эти шаги, когда окно открывается:
ComboBox
кнопка раскрытия списка - это отображает список объектов и выбирает текст в ComboBox
Это ошибка в ComboBox
? Я использую Windows 7, если это имеет значение. Я настраиваю ComboBox
неправильно так или иначе?
Обратите внимание также, что использование КЛАВИАТУРЫ использует выпадающее автоматическое заполнение. Так/клавиши со стрелкой вниз используют переднее окно, но мышь использует заднее окно.
Нет проблем с получением репродукции для этого, просто установив свойства из PropertyGrid. Так происходит как в Win7, так и в Windows XP.
Это нарушенное поведение задокументировано в этой статье отзывов. Как указано, Microsoft не рассматривает возможность исправления. Одно из возможных решений - отключить автозаполнение в обработчике события DropDown и снова включить его в обработчике события DropDownClosed.
Это устало. Ваш код мне нравится, и я несколько раз использовал эту функцию автозаполнения, и она не отображала ни DropDown, ни список автозаполнения.
Я предлагаю
Установить источник данных после элементов отображения / значений. Не могу вспомнить почему, но другой вызвал некоторые проблемы.
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Дисплей";
comboBox1.DataSource = t;
Установите AutoCompleteSource в конце вашего кода (после добавления DataSouce)
Возможно, это поможет.