有没有办法在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()
}
答案 0 :(得分:0)
可以使用一些疯狂的反射代码来做到这一点,但你不想这样做,因为你总是遇到“好吧我仍然希望保持这个事件不是其他人”。
我建议创建一个包含add-listener委托列表和remove-listener委托列表的类,然后在适当的时间迭代并执行每个委托。