C# DataGridView中第二个单词的自动完成

C# DataGridView中第二个单词的自动完成,c#,winforms,datagridview,autocomplete,C#,Winforms,Datagridview,Autocomplete,我有一个DataGridView,我在其中一个单元格中使用了AutoComplete。但只有第一个单词可以使用AutoComplete进行搜索。我希望第二个单词也可以使用AutoComplete进行搜索。正在从数据库中获取数据 例如,db含有咖啡粉、茶、盐粉等 若我搜索粉末,我想要的结果是咖啡粉和盐粉。现在若我用第二个词搜索,我不会得到任何结果 private void datagrid_EditingControlShowing(object sender, DataGridViewEditi

我有一个DataGridView,我在其中一个单元格中使用了AutoComplete。但只有第一个单词可以使用AutoComplete进行搜索。我希望第二个单词也可以使用AutoComplete进行搜索。正在从数据库中获取数据

例如,db含有咖啡粉、茶、盐粉等

若我搜索粉末,我想要的结果是咖啡粉和盐粉。现在若我用第二个词搜索,我不会得到任何结果

private void datagrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (dgvdetails.CurrentCell.ColumnIndex == 2)
            {
                string titleText = dgvdetails.Columns[2].HeaderText;
                if (titleText.Equals("Product Name"))
                {
                    TextBox autoText = e.Control as TextBox;
                    if (autoText != null)
                    {
                        autoText.AutoCompleteCustomSource = LoadAutoComplete(); //this method is below
                        autoText.AutoCompleteMode = AutoCompleteMode.Suggest;
                        autoText.AutoCompleteSource = AutoCompleteSource.CustomSource;
                    }
                }
            }
}

如果my db包含产品名称:小麦、糖、咖啡粉、盐粉
我当前的结果是:如果我搜索“Wh”,我会得到结果, 如果我搜索“S”,我会得到糖和盐粉, 如果我搜索“Su”我会得到糖, 如果我搜索“Po”,我没有得到任何结果

预期结果:
如果我搜索“Po”,我想要盐粉作为自动完成的结果。

可能重复@lennartstoop No这在网格中不起作用
TextBox
ComboBox
随附的自动完成功能仅与前缀完成一起工作,并且它会一直到COM,因此无法更改该行为。别无选择,只能自己动手,我很抱歉afraid@LennartStoop除了自动完成之外,你能建议另一种实现方法吗?到目前为止你做了哪些尝试?你说我之前链接的自定义
文本框
控件在网格中不起作用:为什么?您可以通过一些修改使其正常工作,如果您遇到问题,您可以在此处发布更详细的问题@Lennartstoop No的可能重复项这在网格中不起作用
TextBox
ComboBox
附带的自动完成功能仅适用于前缀完成,它一直延伸到COM,所以不可能改变这种行为。别无选择,只能自己动手,我很抱歉afraid@LennartStoop除了自动完成之外,你能建议另一种实现方法吗?到目前为止你做了哪些尝试?你说我之前链接的自定义
文本框
控件在网格中不起作用:为什么?你可以通过一些修改使它工作,如果你被卡住了,你可以在这里发布更详细的问题
private AutoCompleteStringCollection LoadAutoComplete()
        {

            DataTable dt = new DataTable();
            dt = estimatesub.Searchproduct(num);

            AutoCompleteStringCollection stringCol = new AutoCompleteStringCollection();
            foreach (DataRow row in dt.Rows)
            {
             //  textBox1.Text = Convert.ToString(row[1]);
                stringCol.Add(Convert.ToString(row[1]));
            }
            return stringCol;
        }