ComboBox自动完成自定义function

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

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

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

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

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