9

SelectedIndexChanged我有一个场景,即使新旧索引相同,我也需要触发 Winform 组合框的事件。我无法使用SelectionChangeCommited,因为这些值是以编程方式设置的。它不会被触发。即使旧索引和相同索引相同,是否有机会强制“SelectedIndexChanged”触发?

4

3 回答 3

28

您希望该事件为同一项目重新触发似乎很奇怪。这可能是因为您只想重新执行事件处理程序逻辑。为什么不将 SelectionChanged 逻辑提取到一个新方法中并以编程方式调用该方法?

于 2013-11-07T06:40:04.277 回答
17

没有什么可以阻止您直接调用事件处理程序:

comboBox1_SelectedIndexChanged(comboBox1, new EventArgs()); // or (null, null)

但是解决方案atomaras是一种更好(更好)的方法。

我自己不喜欢在不太严肃的软件中使用标准组件。相反,我从一开始就对所有标准组件进行子类化,并在需要时立即向它们添加功能,而无需更改现有表单中的任何内容。

在这种情况下,我将添加一个公共事件提升器OnSelectedIndexChanged来执行事件(以编程方式在事件处理程序中运行代码)。

于 2013-11-07T06:51:09.033 回答
-2
combobox.selectedIndex = value;
combobox.selectedevent(null,null);
于 2018-10-09T06:48:38.190 回答