在C#中自动填写电子邮件地址和/或名称

时间:2009-10-08 19:01:06

标签: c# winforms email autocomplete

我正在寻找像这里讨论的那样的解决方案,但是对于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

4 个答案:

答案 0 :(得分:3)

WinForms 2.0控件已在AutoCompleteSource属性中提供此功能。您可以将其设置为数据源,或使用AutoCompleteStringCollection构建自己的字符串列表。

答案 1 :(得分:3)

我最终编写了自己的UserControl自定义类来处理这个问题。似乎没有任何东西可以满足我的需求。

我在BSD下提供了源代码和DLL: http://code.google.com/p/email-autocomplete

基本上,它模仿Gmail上“To:”框的功能,当然还有.NET。

答案 2 :(得分:1)

答案 3 :(得分:0)

在control(例如TextBox)Properties选项卡中,打开Behavior部分并将AutoCompleteType设置为所需值。你可以以编程方式做同样的事情。对于您的控件(例如TextBox TextBox1),请调用AutoCompleteType类型并初始化值(例如 TextBox1.AutoCompleteType = AutoCompleteType.Email; )