即使旧索引和新索引相同,是否可以触发ComboBox SelectedIndex Changed Event?

我有一个场景是我需要触发winform的combox的SelectedIndexChanged事件,即使旧的和新的索引是相同的..我不能使用SelectionChangeCommited因为值是以编程方式设置的..它不会被解雇。 即使旧的和相同的索引相同,是否有机会强制’SelectedIndexChanged’开火?

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

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

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

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

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

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

 combobox.selectedIndex = value; combobox.selectedevent(null,null);