我正在寻找像这里讨论的那样的解决方案,但是对于C#WinForms。 Link here
要改写,是否可以使用具有多行的单个数据源在C#中执行文本框自动完成?结果应该像Gmail的TO:创建电子邮件的字段,或类似的MS Outlook的TO:字段。
例如,数据集可能是:
“约翰威廉姆斯”(john.williams@gmail.com)
“鲍勃约翰逊”(john.jacobs@gmail.com)
“威利约翰斯顿”(willy.williams@gmail.com)
“威利威廉姆斯”(johnjohn@gmail.com)
...我应该可以输入“john”,并建议全部四个。如果我键入“johns”,则会建议第二个和第三个条目。
这比.NET默认提供的自动完成更先进。
谢谢, -Greg
答案 0 :(得分:3)
WinForms 2.0控件已在AutoCompleteSource属性中提供此功能。您可以将其设置为数据源,或使用AutoCompleteStringCollection构建自己的字符串列表。
答案 1 :(得分:3)
我最终编写了自己的UserControl自定义类来处理这个问题。似乎没有任何东西可以满足我的需求。
我在BSD下提供了源代码和DLL: http://code.google.com/p/email-autocomplete
基本上,它模仿Gmail上“To:”框的功能,当然还有.NET。
答案 2 :(得分:1)
您是否查看过Ajax Control Toolkit?
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx
答案 3 :(得分:0)
在control(例如TextBox)Properties选项卡中,打开Behavior部分并将AutoCompleteType设置为所需值。你可以以编程方式做同样的事情。对于您的控件(例如TextBox TextBox1),请调用AutoCompleteType类型并初始化值(例如 TextBox1.AutoCompleteType = AutoCompleteType.Email; )