我有一个场景,我需要触发winform的combox的SelectedIndexChanged
事件,即使旧索引和新索引相同。我不能使用SelectionChangeCommited
因为值正在设置以编程方式..它不会被解雇。即使旧的和相同的索引相同,是否有机会强制“SelectedIndexChanged”开火?
答案 0 :(得分:26)
您希望事件重新获得同一项目似乎很奇怪。这可能是因为您只想重新执行事件处理程序逻辑。为什么不将SelectionChanged逻辑提取到一个新方法中并以编程方式调用它?
答案 1 :(得分:16)
没有什么能阻止你直接调用事件处理程序:
comboBox1_SelectedIndexChanged(comboBox1, new EventArgs()); // or (null, null)
但是atomaras
的解决方案是更好(更好)的方法。
我自己不喜欢在更严肃的软件中使用标准组件。相反,我从一开始就将所有标准组件子类化,并在需要时立即向它们添加功能,而无需更改现有表单中的任何内容。
在这种情况下,我会添加一个公共事件riser OnSelectedIndexChanged
来执行事件(以编程方式在事件处理程序中运行代码)。
答案 2 :(得分:-1)
combobox.selectedIndex = value;
combobox.selectedevent(null,null);