C#autocomplete组合框触发器SelectionChangeCommited

时间:2011-11-04 20:07:17

标签: c# .net winforms autocomplete combobox

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

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

AutoCompleteMode = SuggestAppend
AutoCompleteSource = ListItems
FormattingEnabled = True

我的组合中的项目是使用数据源设置的。

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:2)

如果您的意思是在开始输入时希望它注册更改:

从TextChanged事件中调用SelectionChangeCommited事件。

如果您从未这样做过,我可以找到的最基本的例子是.net论坛here.当然,这里显示的方法是通用的,但很容易理解并适用于您的代码。

编辑已修复(截至最近评论):

仍将事件绑定在一起,但不使用TextChanged,而是在键入时出现,而是使用SelectedIndexChanged,当您使用鼠标选择自动建议项时会发生这种情况。

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

答案 1 :(得分:0)

您可以使用技巧并致电comboBox1_SelectionChangeCommitted 在验证事件中

当组合框中的文本发生变化且用户离开组合框时,它将被触发

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

    }