В WinForms 2.0 ComboBox имеет функцию автозаполнения, которая отображает пользовательский раскрывающийся список только с значениями, начинающимися с введенного текста.
Однако, если я хочу ограничить допустимые значения только теми, которые появляются в списке элементов ComboBox, я могу сделать это, установив DropDownStyle
в DropDownList
, что не позволяет пользователю ввести значение.
Однако теперь я не могу использовать функцию автозаполнения, которая требует ввода пользователем.
Есть ли другой способ ограничить ввод в список, сохраняя при этом возможность использования функции автозаполнения? Обратите внимание, что для этого я видел некоторые пользовательские решения, но мне очень нравится, как соответствующие элементы Auto-Complete отображаются в раскрывающемся списке и сортируются, даже если исходный список не может быть.
EDIT: Я подумал о том, чтобы просто подтвердить введенное значение, то есть проверить ввод пользователя, если он действителен, например, в событии TextChanged
, или даже с помощью события Validating
. Тогда возникает вопрос, каково ожидаемое поведение? Удалить значение (пустое значение также недопустимо), или я использую значение по умолчанию? Ближайшее значение соответствия?
P.s. Есть ли еще теги, которые я мог бы добавить к этому вопросу?