首页 > 解决方案 > DataGridView 中第二个单词的自动完成

问题描述

我有一个 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;
                    }
                }
            }
}

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;
        }

如果我的数据库包含产品名称:小麦,糖,咖啡粉,盐粉
我目前的结果是:如果我搜索“Wh”我得到结果小麦,如果我搜索“S”我得到糖和盐粉,如果我搜索“Su”我得到糖,如果我搜索“Po”我没有得到任何结果。

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

标签: c#winformsdatagridviewautocomplete

解决方案


推荐阅读