Как заставить выпадающий список формы C # Windows вести себя как выпадающий список браузера?

#c# #drop-down-menu #match

#c# #выпадающее меню #совпадение

Вопрос:

У меня есть поле со списком в режиме выпадающего списка. Допустим, содержимое:

1
2
5
91
92
99
205

В приложении Forms я хочу иметь возможность сосредоточиться на элементе управления и ввести 205, а затем выбрать 205. Вместо этого я нажимаю 2 — он переходит к 2. Я нажимаю 0, ничто не начинается с 0, поэтому оно остается на 2. Я нажимаю 5, он переходит к 5. Он смотрит только на последнюю нажатую клавишу.

То же самое, если я наберу 99, он перейдет к первым 9 совпадениям — 91, затем ко вторым 9 совпадениям — 92. Но я хотел, чтобы он был равен 99.

С другой стороны, в любом браузере, если вы находитесь в выпадающем списке и вводите последовательность символов, он рассмотрит их все вместе и перейдет к полному совпадению. (Такое же поведение в папках Windows, если вы вводите имя файла.) Последовательность обычно сбрасывается после нескольких секунд отсутствия ввода.

Как я могу заставить выпадающий список моих форм вести себя как выпадающий список браузера?

Комментарии:

1. Вам нужен autocompletebox , а не combobox — вам понадобится сторонний элемент управления — codeproject.com/KB/combobox/AutoCompleteComboBox.aspx возможно?

2. Попробуйте установить для DropDownStyle значение DropDown

Ответ №1:

Установите для параметра AutoCompleteMode значение Suggest, для параметра AutoCompleteSource — значение ListItems, а для стиля — значение DropDownList.

Комментарии:

1. Спасибо! Я знал, что должен быть простой способ.

Ответ №2:

Я бы также добавил, что вам нужно установить для свойства «FlatStyle» значение «Popup», чтобы сделать его более похожим на веб-поле со списком.

Комментарии:

1. Пожалуйста, используйте раздел «Комментарии» для комментариев. Спасибо!