2017-02-22 51 views
-3

根据要求,我们需要为Windows应用程序的电子邮件文本框应用自动筛选选项。 我们能够实现使用“AutoCompleteCustomSource”自动筛选文本框与昏迷分隔字符串

对于电子邮件文本框中自动筛选,我们编程的方式创建“AutoCompleteStringCollection”列表,并将其设置为文本框的“AutoCompleteCustomSource”属性。 我们的电子邮件文本框还具有使用彗星分隔符输入多个电子邮件的选项。

在多封电子邮件的情况下,自动过滤器无法正常工作。

例如,如果我们输入“Sa”,它将显示以“Sa”开头的电子邮件 但是,如果我们在输入电子邮件(“rahul @ gmail.com,Sa”)后输入“Sa”没有显示任何以“Sa”开头的项目。

有什么办法可以解决这个问题吗?如果您能提供解决方案,将不胜感激。

AutoCompleteStringCollection data = new AutoCompleteStringCollection(); 
     data.Add("Mahesh Chand"); 
     data.Add("Mac Jocky"); 
     data.Add("Millan Peter"); 
     textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; 
     textBox1.AutoCompleteCustomSource = data; 

最好的问候,

+0

你有什么迄今所做?你可以显示代码吗?我们可以提供帮助,但不能从头生成代码 –

+0

我刚添加了代码。我用名称而不是电子邮件ID – Ranish

+0

不幸的是,这不是真的可能。问题是您提供了一个(可能是虚拟的)可以输入和自动完成的值的列表。但是,如何使用这个列表将由文本框决定,而不是源代码。 – Oliver

回答

0

担任首发,你可以与已经写入字符串,如果你遇到一个,基本上扩展你AutoCompleteStringCollection data

这里是第一步。我采取TextChanged事件来检查,。然后将已写入的文本放在每个条目前面。

private void textBox2_TextChanged(object sender, EventArgs e) 
{ 
    if (textBox2.Text.Last() == ',') 
    { 
     for (int i = 0; i < data.Count; i++) 
     { 
      data[i] = textBox2.Text + data[i]; 
     } 
    } 
} 

下面是结果:

enter image description here

免责声明:问题仍然有待解决:

  • 避免以显示已书面姓名

  • 处理用户删除的情况,因为到现在为止仍然延长

  • 回归到你的AutoCompleteStringCollection

启动状态,我希望它有助于

+0

谢谢。我们不能附加已经写好的名字,因为有可能在两个名字之间插入名字。 – Ranish

+0

@Ranish然后你就可以用我猜的代码来编写你自己的自动完成代码了。祝你好运 –

+0

@Ranish也许你应该在你的文章中加入这个要求 –