Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C自动完成组合框触发选择更改提交_C#_.net_Winforms_Autocomplete_Combobox - Fatal编程技术网

C# C自动完成组合框触发选择更改提交

C# C自动完成组合框触发选择更改提交,c#,.net,winforms,autocomplete,combobox,C#,.net,Winforms,Autocomplete,Combobox,我对组合框的自动完成属性有问题。我想在每次使用autocomplete选择项目时触发SelectionChangeCommitted事件,但它不起作用。触发事件的唯一方式是使用鼠标单击并选择一个选项,或者当组合框聚焦并使用键盘上的箭头键时。如何使用autocomplete属性实现此行为 “我的组合”设置了以下属性: AutoCompleteMode = SuggestAppend AutoCompleteSource = ListItems FormattingEnabled = True “

我对组合框的自动完成属性有问题。我想在每次使用autocomplete选择项目时触发SelectionChangeCommitted事件,但它不起作用。触发事件的唯一方式是使用鼠标单击并选择一个选项,或者当组合框聚焦并使用键盘上的箭头键时。如何使用autocomplete属性实现此行为

“我的组合”设置了以下属性:

AutoCompleteMode = SuggestAppend
AutoCompleteSource = ListItems
FormattingEnabled = True
“我的组合”中的项目是使用数据源设置的

有什么想法吗?
如果您的意思是希望它在您开始键入时注册更改,请多谢:

从TextChanged事件调用SelectionChangeCommitted事件

如果你从来没有这样做过,我能找到的最基本的例子是在.net论坛上,这里显示的方法是通用的,但是很容易理解并应用到你的代码中

编辑自最近的评论起已修复:

仍然将事件绑定在一起,但不要使用TextChanged(每次键入时都会发生),而是使用SelectedIndexChanged(在使用鼠标选择自动建议的项目时发生)

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
   comboBox1_SelectionChangeCommitted(sender, e);
}

您可以使用技巧并调用comboBox1\u SelectionChangeCommitted 在有效事件中

当组合框中的任何文本发生更改并且用户离开组合框时,它将被触发

  private void comboBox1_Validated(object sender, EventArgs e)
    {
        comboBox1_SelectionChangeCommitted(sender, e);

    }

不是在我开始输入时,我想在选择建议选项时触发事件。啊,我知道你在做什么。您仍在使用鼠标进行选择,但当您单击建议的选项时,它不会将其注册为SelectionChangeCommitted,对吗?它不会被触发让我检查一下。这是因为它的代码不正确,我粘贴了错误的代码,抱歉。我修复了它,也测试了它,它对我很有效。另外,其他人的代码不起作用的原因是,当控件本身通过表单本身的加载进行验证时,他调用代码的事件会运行。您尝试上面编辑的代码了吗?我不确定,因为我在周五晚些时候为你发布了它,请告诉我结果如何。是的,我检查过了,我的问题的解决方案是上面的答案,谢谢