繁体   English   中英

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

[英]Is it possible to fire ComboBox SelectedIndex Changed Event even when old and new index are same?

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM