【问题标题】:Autocomplete email address and/or names in C#在 C# 中自动完成电子邮件地址和/或名称
【发布时间】:2010-12-05 02:49:43
【问题描述】:

我正在寻找与此处讨论的解决方案类似的解决方案,但适用于 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 默认提供的自动完成功能更高级。

谢谢, -格雷格

【问题讨论】:

  • 您想要每个编辑控件或多个项目一个地址?
  • 需要指定WinForms或者ASP.NET;解决方案非常不同。
  • 每个文本框多个地址,单个数据源,不是骗子(相似但不一样),winforms。问题已编辑为具体。

标签: c# winforms email autocomplete


【解决方案1】:

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

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

基本上,它模拟了 Gmail 上的“收件人:”框的功能,当然也模拟了 .NET 中的功能。

【讨论】:

    【解决方案2】:

    在控件(例如 TextBox)的“属性”选项卡中,打开“行为”部分并将 AutoCompleteType 设置为所需的值。您可以以编程方式执行相同的操作。为您的控件(例如 TextBox TextBox1)调用 AutoCompleteType 类型并初始化值(例如 TextBox1.AutoCompleteType = AutoCompleteType.Email; )

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 关于预期行为的问题已得到澄清。 .NET 2.0 控件不满足此条件。
      【解决方案4】:

      【讨论】:

        猜你喜欢
        • 2019-01-10
        • 2011-06-04
        • 2020-10-28
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-23
        • 2015-10-20
        相关资源
        最近更新 更多