如何使用自动完成更改的方法集合

本文关键字:方法 集合 何使用 | 更新日期: 2023-09-27 17:53:29

我尝试通过多种方式在c#中使用SUBSTRING搜索来使用自动完成功能。最后总会遇到同样的问题。我的逻辑每次都返回正确的信息集,但我无法及时显示它(实时更改可用下拉列表)

就像输入'A'一样用

填充下拉列表
Adeel Nazir
Abdul Muqeet
Aun Abbas

然后我擦除'A'并重新键入'N'。然后执行我的代码并返回

Adeel Nazir
Aun Abbas

但是我的下拉列表没有更新。

我尝试了刷新文本字段和许多其他方法…

注意:我还使用了函数而不是每次运行查询来搜索子字符串。但是主要的问题是每次都要更新下拉菜单。

private void key_up(object sender, KeyEventArgs e)
{
     mycollection.Clear(); // autocompletecustomsource
     this.hostName.Refresh();
     using (SqlConnection con = new SqlConnection(Connection.con))
     {
        string cmd = " select hFirst+' '+hLast as Name from Hosts where hFirst+' '+hLast like '%" + this.hostName.Text + "%'";
        con.Open();
        using (command = new SqlCommand(cmd, con))
        {
            reader = command.ExecuteReader();
            while (reader.Read())
            {
                mycollection.Add(reader["Name"].ToString());
            }
            hostName.AutoCompleteCustomSource = mycollection;
        }
        con.Close();
    }
}
编辑:

现在经过大量的研究,我达到了一个点,我们可以编辑我们的集合集合更改方法(默认提供),但现在我不能想出一个简单的方法来使用它。下面是我在key_up事件上执行的新代码。请指导我如何使用自动补全的收集更改方法。

新代码:

private void key_up(object sender, KeyEventArgs e)
{
   mycollection.CollectionChanged+= mycollection.Add("abcd");
}

如何使用自动完成更改的方法集合

好了。我找到了一个简单的出路。
每次清除自动完成并添加新项目即可。最简单快捷的

//autocomplete.clear ();autocomplete.add("名字");