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

时间:2013-11-07 06:28:58

标签: c# .net vb.net winforms combobox

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

3 个答案:

答案 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);