如何让C#textbox autocomplete根据包含内容而不是以开头提出建议?

如何让C#textbox autocomplete根据包含内容而不是以开头提出建议?,c#,winforms,windows-forms-designer,C#,Winforms,Windows Forms Designer,我的C#Windows窗体应用程序中有一个文本框,它将AutoCompleteMode设置为AutoCompleteMode.Suggest,我的内容源是一个自定义源 我的内容源是自定义的,具有以下值: 吉姆·史密斯 艾丽斯·沃克 鲍勃·沃克 杰里米·史密斯 只有通过检查文本框中建议的项目是否“以”值开始,内容完成才会显示为有效 例如: text=J - Jim Smith <jsmith@mycorp.com> - Alice Walker <alice@some.em

我的C#Windows窗体应用程序中有一个文本框,它将AutoCompleteMode设置为AutoCompleteMode.Suggest,我的内容源是一个自定义源

我的内容源是自定义的,具有以下值:

  • 吉姆·史密斯
  • 艾丽斯·沃克
  • 鲍勃·沃克
  • 杰里米·史密斯
只有通过检查文本框中建议的项目是否“以”值开始,内容完成才会显示为有效

例如:

text=J
- Jim Smith <jsmith@mycorp.com>
- Alice Walker <alice@some.email.com>
- Bob Walker <bob.walker@mycorp.com>
- Jeremy Smith <jeremys@foo.com>
将产生以下建议:

  • 吉姆·史密斯
  • 杰里米·史密斯
但是,如果用户键入

text=Walk
没有结果

我如何完成内容以提出以下建议

  • 艾丽斯·沃克
  • 鲍勃·沃克
此外,我的最终目标是有一个文本框,个人可以轻松地开始键入电子邮件地址。自动完成建议的内容将是姓名+电子邮件地址。例如:

text=J
- Jim Smith <jsmith@mycorp.com>
- Alice Walker <alice@some.email.com>
- Bob Walker <bob.walker@mycorp.com>
- Jeremy Smith <jeremys@foo.com>
-吉姆·史密斯
-艾丽斯·沃克
-鲍勃·沃克
-杰里米·史密斯

这在内置文本框中是不可能的

阅读显示自动完成功能调用本机函数来完成它的工作。那个只做前缀匹配


要做到这一点,您必须对TextBox进行子类化,并提供自己的建议功能(或购买一个/找到一个开源功能)。

@juharr感谢您修复了这个问题,但在预览中错过了它。请查看此问题的答案(同一问题):将此标记为上述问题的重复,以便其他人直接进入该问题。(但我实际上无法将其作为副本关闭。)