C# C组合框自动完成建议

C# C组合框自动完成建议,c#,C#,我已经读了很多帖子,但还没有找到任何有助于解决这个问题的方法。我想从包含组合框中当前键入文本的数据库中选择所有单元格 但当我这样尝试时,一次只能输入一个字符 private void GetSource(object sender, EventArgs e) { var src = new AutoCompleteStringCollection(); var tmp = _sqlite.GetDataTable("select customer from Machines")

我已经读了很多帖子,但还没有找到任何有助于解决这个问题的方法。我想从包含组合框中当前键入文本的数据库中选择所有单元格

但当我这样尝试时,一次只能输入一个字符

private void GetSource(object sender, EventArgs e)
{
    var src = new AutoCompleteStringCollection();

    var tmp = _sqlite.GetDataTable("select customer from Machines");
    foreach (DataRow r in tmp.Rows)
    {
        if (r[0].ToString().Contains(CmbCustomer.Text))
            src.Add(r[0].ToString());
    }

    CmbCustomer.AutoCompleteCustomSource = src;

}

有没有办法做到这一点?提前感谢

您应该在select查询中,在SQLite方面检查字符串是否匹配。它只允许我一次输入一个字符,这太模糊了,无法准确地告诉您出了什么问题,但搜索可能需要一些时间。如果是这种情况,您可以尝试使用计时器每隔半秒左右刷新自动完成。

您应该更改查询以执行类似搜索,例如,从计算机中选择Customer,其中Customer LIKE CmbCustomer.Text+%。这将选择一个更窄的结果集,与您输入的字符数匹配。

假设我开始键入cole,我将在combox中获得c,然后它将选择文本并将插入符号设置回开头,因此当我键入下一个字母“o”时,它将删除c,依此类推。如果我在ole中键入,该查询将返回cole,woley,boce-2?如果要搜索任何包含值的内容,需要在开始和结束处输入百分比。示例:与%OLE%类似,问题不在此代码段中。如果是的话,你早就找到了。尝试为SelectedIndexChanged事件添加处理程序,并查看它是如何被触发的。