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

时间:2016-06-30 07:38:24

标签: c# winforms visual-studio sql-server-2008

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

喜欢打字' 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");
}




1 个答案:

答案 0 :(得分:1)

出于这一切的困惑。我找到了一个简单的方法。
只需每次都清除自动填充功能并向其添加新项目。 最简单,最快

// autocomplete.clear(); autocomplete.add( “名称”);