2009-11-21 5 views
1

Как я могу расширить функцию автозаполнения WinForm ComboBox, чтобы, например, найти совпадения элементов с использованием регулярного выражения или для простоты найти элементы, содержащие введенный текст?ComboBox AutoComplete Custom Capabilities

ответ

2

Для нахождения существующего элемента списка, который наилучшим образом соответствует тому, что пользователь набрал, вы можете установить AutoCompleteMode свойства на ComboBox в AutoCompleteMode.Append и AutoCompleteSource к AutoCompleteSource.ListItems.

Если вы хотите использовать более сложную логику для выполнения автозаполнения, посмотрите на что-то сделать с событием TextChanged. An Example

3

AutoCompleteMode в Windows Forms не поддерживает (на данный момент) фильтрацию с регулярным выражением или совпадением с середины. Он поддерживает только префиксную фильтрацию.

API для сброса параметров автозаполнения при вводе: IAutoCompleteDropDown :: ResetEnumerator. Вы должны вызвать его в событии TextChanged. В Windows Vista или более поздней версии вы можете вызвать IAutoComplete2 :: SetOptions с ACO_NOPREFIXFILTERING, чтобы отключить префиксную фильтрацию.