在 WinForms 2.0 中,ComboBox 具有自动完成功能,它显示一个自定义下拉列表,其中仅包含以输入文本开头的值。
但是,如果我想将有效值限制为仅出现在 ComboBox 的项目列表中的值,我可以通过设置DropDownStyle
to来做到这一点DropDownList
,这会阻止用户输入值。
但是,现在我无法使用需要用户输入的自动完成功能。
是否有另一种方法可以限制对列表的输入,同时仍然允许使用自动完成功能?请注意,我已经看到了一些自定义解决方案,但我真的很喜欢匹配的自动完成项目在下拉列表中显示的方式,即使原始列表可能不是,也可以排序。
编辑:我考虑过只验证输入的值,即测试用户输入是否在TextChanged
事件中有效,甚至在使用Validating
事件中。那么问题是预期的行为是什么?我是清除它们的值(空值也是无效的),还是使用默认值?最接近的匹配值?
Ps 还有其他的标签可以添加到这个问题吗?