In WinForms 2.0, a ComboBox has an Auto-Complete feature, that displays a custom Drop-Down list with only the values that start with the entered text.
However, if I want to limit valid values to only those that appear in the ComboBox's list of items, I can do that by setting the DropDownStyle
to DropDownList
, which stops the user from entering a value.
However, now I can't use the Auto-Complete feature, which requires user input.
Is there another way to limit input to the list, while still allowing use of the Auto-Complete feature? Note that I have seen some custom solutions for this, but I really like the way the matching Auto-Complete items are displayed in a Drop-Down list, and sorted even though the original list may not be.
EDIT: I have thought about just validating the entered value, i.e. testing user input if it is valid in, say, the TextChanged
event, or even using the Validating
event. The question then is what is the expected behavior? Do I clear their value (an empty value is also invalid), or do I use a default value? Closest matching value?
P.s. Is there any other tags that I could add to this question?