C# 自动筛选带有分隔字符串的文本框

C# 自动筛选带有分隔字符串的文本框,c#,C#,根据要求,我们需要为windows应用程序的电子邮件文本框应用自动筛选选项。 我们可以使用“AutoCompleteCustomSource”实现电子邮件文本框的自动筛选 为此,我们以编程方式创建了“AutoCompleteTestringCollection”列表,并将其设置为textbox的“AutoCompleteCustomSource”属性。 我们的电子邮件文本框还具有使用coma分隔符输入多封电子邮件的选项 在多封电子邮件的情况下,自动过滤器不能正常工作 例如,如果我们输入“Sa”,

根据要求,我们需要为windows应用程序的电子邮件文本框应用自动筛选选项。 我们可以使用“AutoCompleteCustomSource”实现电子邮件文本框的自动筛选

为此,我们以编程方式创建了“AutoCompleteTestringCollection”列表,并将其设置为textbox的“AutoCompleteCustomSource”属性。 我们的电子邮件文本框还具有使用coma分隔符输入多封电子邮件的选项

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

例如,如果我们输入“Sa”,它将显示以“Sa”开头的电子邮件 但如果我们在输入电子邮件后输入“Sa”(“rahul@gmail.com,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;

非常感谢,

作为初学者,如果遇到
,您基本上可以使用已编写的字符串扩展
自动完成TestRingCollection数据

这是第一步。我使用
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];
        }
    }
}
private void textBox2\u TextChanged(对象发送方,事件参数e)
{
如果(textBox2.Text.Last()==',')
{
for(int i=0;i
结果如下:

免责声明:有待解决的问题:

  • 避免显示已写入的名称

  • 处理用户删除
    的情况,因为到目前为止扩展仍然保留

  • 返回到
    AutoCompleteStringCollection


我希望这会有帮助

到目前为止你做了什么?你能出示密码吗?我们可以提供帮助,但不能从Scratch生成代码,我只是添加了代码。我用名字代替电子邮件,不幸的是这不太可能。问题是您提供了一个(可能是虚拟的)可能值列表,可以输入并自动完成。但是这个列表的使用方式将由文本框本身决定,而不是它的来源。只需为每个地址使用单独的文本框。谢谢。我们不能附加已经写好的名字,因为有可能在两个名字之间插入名字。@Ranish那么你几乎可以用更多的代码来写你自己的自动完成了。好luck@Ranish也许你应该把这个要求写进你的帖子里。我忘了把它包括在我的要求里。我能够实现自动过滤器使用自定义自己的控制。谢谢你的支持。没问题,如果你有一个有效的解决方案,你可以把它贴在这里作为答案,这样你就可以钉住这篇文章了。