2

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

例子

[_ 我的组合框 _][v]

     |Dog
     |Tree
     |House

用户点击“树”

[_ 我的组合框 _][v]

     |Tree
     |Dog
     |House

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

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

我也尝试过MyComboBox.Text = string_that_contains_what_I_want_to_display;,但它同时触发了 SelectedIndexChanged 和 SelectedValueChanged。

坦率地说,我不明白为什么即使从具有相同值的项目切换,索引和值都会被触发。据我了解, SelectedValueChanged 应该只在两个项目具有不同内容时触发。

我会感谢任何能帮助我摆脱这个难题的人。

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

4

1 回答 1

8

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

于 2012-07-31T15:14:51.027 回答