删除并稍后在C#winforms中重新添加与组框关联的所有事件处理程序

时间:2015-04-23 00:00:56

标签: c# winforms

有没有办法在C#winforms中获取与组框关联的处理程序集合?

对于这些情况,需要以编程方式(而不是用户)更改已检查的状态,我需要关闭处理程序,以便程序的其他部分不会触发。对许多处理者来说,手动执行此操作非常繁琐。

这个伪代码的工作代码版本是否在下面不起作用?

foreach(Control C in parent.groupBox1.Controls)
            {
                C.disableHandlers()
            }
//change controls handlers would have interfered with
foreach(Control C in parent.groupBox1.Controls)
            {
                C.enableHandlers()
            }

1 个答案:

答案 0 :(得分:0)

可以使用一些疯狂的反射代码来做到这一点,但你不想这样做,因为你总是遇到“好吧我仍然希望保持这个事件不是其他人”。

我建议创建一个包含add-listener委托列表和remove-listener委托列表的类,然后在适当的时间迭代并执行每个委托。