2014-09-21 97 views
0

我正在使用C#文本框与自动完成通过自定义源名称集合,例如约翰史密斯,玛丽简等等。问题是,如果我输入'约翰',我确实在下拉列表中看到'约翰史密斯'。但是如果我开始输入'Smith',我不会在下拉菜单中看到'John Smith'。我想改变这一点,我想我将不得不扩展TextBox类并为匹配数据提供我自己的函数。我只是不知道哪个TextBox函数需要被覆盖。C#文本框自动完成:如何提供自定义的“匹配”功能?

其次,我想解决的另一个相关问题是:下拉文本总是左对齐。我怎样才能让它居中对齐?

+0

你可以使用'TextChanged'事件和'string.Contain()'方法? – 2014-09-21 13:11:11

回答

1

没有直接这样做的方法,因为AutoCompleteCustomSource只允许根据您的输入字符串进行前缀匹配。

TextBox.AutoCompleteCustomSource Property

使用AutoCompleteCustomSource,AutoCompleteMode和 AutoCompleteSource属性来创建自动 通过比较前缀被输入到所有字符串的 前缀在维护完成输入字符串一个TextBox资源。

最佳选择似乎覆盖您的TextBoxOnTextChanged event。下面的问题就是一个很好的例子。