c#自动完成组合框触发selectionchangecomited

本文关键字:selectionchangecomited 组合 | 更新日期: 2023-09-27 18:13:38

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

我的组合有这些属性设置:

AutoCompleteMode = SuggestAppend
AutoCompleteSource = ListItems
FormattingEnabled = True

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

任何想法?由于

c#自动完成组合框触发selectionchangecomited

如果您想让它在您开始输入时注册一个更改:

从TextChanged事件中调用selectionchangecommitited事件

如果你从来没有这样做过,我可以在这里的。net论坛上找到最基本的例子。当然,这里显示的方法是通用的,但非常容易理解并应用于您的代码。

EDIT FIXED(截至最近的注释):

仍然将事件绑定在一起,但不是使用TextChanged,而是使用SelectedIndexChanged,当您使用鼠标选择自动建议的项时发生。

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

您可以使用一个技巧并调用comboBox1_SelectionChangeCommitted验证事件

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

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