如何不触发comboBox.SelectedIndexChange并更新它?

mfl*_*ris 2 .net c# events combobox winforms

我编写了一个代码,每当用户从下拉组合框中选择一个值时,他们的选择就成为集合的第一个项目(索引0).

之前

[_ MyComboBox _] [v]

     |Dog
     |Tree
     |House
Run Code Online (Sandbox Code Playgroud)

用户点击"树"

[_ MyComboBox _] [v]

     |Tree
     |Dog
     |House
Run Code Online (Sandbox Code Playgroud)

问题是,在这个操作之后,即使一切正常,comboBox仍然是空白的,用户不知道他们做了什么.

但是,如果我按照每个人的建议做,那就是MyComboBox.SelectedIndex = 0;它会触发一个无限循环,因为我将从事件处理程序MyComboBox_SelectedIndexChanged(...)中调用它

我也尝试了MyComboBox.Text = string_that_contains_what_I_want_to_display;但它触发了BOTH SelectedIndexChanged和SelectedValueChanged.

坦率地说,我无法理解为什么甚至会触发具有相同值,BOTH索引和值的项目.据我所知,只有在两个项目具有不同内容时才会触发SelectedValueChanged.

我会感谢能够帮助我解决这个难题的任何人.

我只需要在完成后在程序界面中显示排序操作的结果.我可以重新加载包含我的控件的整个页面:它可以工作,但这不会非常有效.

Dai*_*Dai 8

使用SelectionChangeCommitted事件而不是SelectionChange.该SelectionChangeCommitted事件仅在用户进行更改时触发,而不是在程序对其进行更改时触发.