winforms C#如何在任何字符串的匹配部分自动完成特定的Gridview列

8aqjt8rx  于 2022-11-17  发布在  C#
关注(0)|答案(1)|浏览(154)
  • 我在C# Winform中有3列Gridview,在MS SQL数据库表中有药物列表。
  • 我想使用drugList表中的数据向gridview的第二列添加自动完成功能。
  • 如果drugList条目中的任何位置包含键入的字符串,则应显示自动完成列表中的所有药物。

这就是我正在尝试的,它没有显示任何输出。

private void gvMedicationsTextBox_TextChanged(object sender, EventArgs e)
        {
            TextBox textBox = sender as TextBox;
            string val = textBox.Text;
            cDrugs drug = new cDrugs();
            string[] autocompleteList = drug.GetAutoCompleteDrugsList(val);
            if (autocompleteList != null)
            {
                AutoCompleteStringCollection dataCollection = new AutoCompleteStringCollection();
                dataCollection.AddRange(autocompleteList);
                textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                textBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
                textBox.AutoCompleteCustomSource = dataCollection;
            }
            textBox.Text = val;

        }

这是活动注册

private void gvMedications_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {            
        
                    TextBox textBox = e.Control as TextBox;
                    if (textBox != null)
                    {
                        textBox.TextChanged += new EventHandler(gvMedicationsTextBox_TextChanged);               
                    }
}
nszi6y05

nszi6y051#

您可以将下拉式方块数据行加入至格缐,并启用[自动完成]属性,以便在储存格中写入任何内容时,选取的值会自动变更。

相关问题