如何为DataGridView组合框列设置自动完成

rue*_*edi 1 c# combobox datagridview autocomplete winforms

我有一个DGV,它连接到具有8列的连接到数据库的DataSet。这些列之一是具有以下设置的组合框

在此处输入图片说明

目前,自动完成功能(默认情况下)的工作方式如下:如果键入“ a”,我将获得所有以“ a”开头的条目。就是这样。如果我输入“ An”,则不会转到例如安达卢西亚。

我已经检查了组合框设置,可以在其中设置自动完成模式和来源,等等,但是随后我看到,在上面可以看到的属性中我没有这些设置。

有谁知道我如何获得想要完成的自动完成功能?

Rez*_*aei 6

您可以处理EditingControlShowingevent 参数的事件DataGridView并使用Controlevent参数的属性,get DataGridViewComboBoxEditingControl派生自ComboBox

然后,可以将其设置AutoCompleteMode为可用选项。您还应该将其DropDownStyle属性设置ComboBoxStyle.DropDown为允许用户输入控件。

void grid_EditingControlShowing(object s, DataGridViewEditingControlShowingEventArgs e)
{
    var comboBox = e.Control as DataGridViewComboBoxEditingControl;
    if(comboBox!=null)
    {
        comboBox.DropDownStyle = ComboBoxStyle.DropDown;
        comboBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
    }
}
Run Code Online (Sandbox Code Playgroud)