C#文本框自动完成:如何提供自定义';匹配';功能?

C#文本框自动完成:如何提供自定义';匹配';功能?,c#,autocomplete,textbox,C#,Autocomplete,Textbox,我正在使用C#TextBox,通过一个自定义的姓名集合源自动完成,例如John Smith、Mary Jane等。。问题是,如果我输入“John”,我确实会在下拉列表中看到“John Smith”。但是如果我开始输入“史密斯”,我就不会在下拉列表中看到“约翰·史密斯”。我想改变这一点,我想我必须扩展TextBox类并提供自己的匹配数据的函数。我只是不知道哪个文本框函数需要被覆盖 其次,我想解决的另一个相关问题是:下拉文本总是左对齐的。如何使其居中对齐?没有直接的方法,因为AutoComplete

我正在使用C#TextBox,通过一个自定义的姓名集合源自动完成,例如John Smith、Mary Jane等。。问题是,如果我输入“John”,我确实会在下拉列表中看到“John Smith”。但是如果我开始输入“史密斯”,我就不会在下拉列表中看到“约翰·史密斯”。我想改变这一点,我想我必须扩展TextBox类并提供自己的匹配数据的函数。我只是不知道哪个文本框函数需要被覆盖

其次,我想解决的另一个相关问题是:下拉文本总是左对齐的。如何使其居中对齐?

没有直接的方法,因为
AutoCompleteCustomSource
只允许基于输入字符串进行前缀匹配

使用AutoCompleteCustomSource、AutoCompleteMode和 AutoCompleteSource属性创建一个自动 通过将输入的前缀与 维护的源中所有字符串的前缀

最佳选项似乎覆盖了您的
文本框
。下面的问题有一个很好的例子


是否可以使用
TextChanged
事件和
string.Contain()
方法?