ComboBox自动完成自定义功能

时间:2009-11-21 19:00:53

标签: c# winforms

如何扩展WinForm ComboBox的自动完成功能,例如,使用正则表达式查找项目的匹配项,或者为了简单起见,查找包含输入文本的项目?

2 个答案:

答案 0 :(得分:3)

Windows窗体中的AutoCompleteMode(现在)不支持使用正则表达式进行过滤或从中间进行匹配。它仅支持前缀过滤。

在您键入时重置自动填充选项的API是IAutoCompleteDropDown :: ResetEnumerator。您需要在TextChanged事件中调用它。 在Windows Vista或更高版本中,您可以使用ACO_NOPREFIXFILTERING调用IAutoComplete2 :: SetOptions来禁用前缀过滤。

答案 1 :(得分:2)

要查找与用户键入的内容最匹配的现有列表项,可以将ComboBox上的AutoCompleteMode属性设置为AutoCompleteMode.Append,将AutoCompleteSource设置为AutoCompleteSource.ListItems。

如果您想使用更复杂的逻辑来执行自动完成,请查看使用TextChanged事件执行某些操作。 An Example