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

Sam*_*ack 8 .net c# vb.net combobox winforms

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

ato*_*ras 27

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


Sin*_*atr 16

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

comboBox1_SelectedIndexChanged(comboBox1, new EventArgs()); // or (null, null)
Run Code Online (Sandbox Code Playgroud)

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

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

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