Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Winforms-通知/发布控件层次结构中的事件_C#_Winforms_Design Patterns_C# 4.0 - Fatal编程技术网

C# Winforms-通知/发布控件层次结构中的事件

C# Winforms-通知/发布控件层次结构中的事件,c#,winforms,design-patterns,c#-4.0,C#,Winforms,Design Patterns,C# 4.0,我有一个层次结构的控制,如- MainForm (has menus / toolbars) |____TabContainer |_____TabPages |_____TreeView...etc. 现在,在数据加载到TreeView中并且用户选择了一个特定的节点元素之后,我想从TreeView通知MainForm以及hirarchy中的一些控件,并根据NodeClicked事件相

我有一个层次结构的控制,如-

MainForm (has menus / toolbars)
      |____TabContainer
                  |_____TabPages
                               |_____TreeView...etc.
现在,在数据加载到TreeView中并且用户选择了一个特定的节点元素之后,我想从TreeView通知MainForm以及hirarchy中的一些控件,并根据NodeClicked事件相应地更改控件状态


我正在维护一个静态EventMgr类,在该类中发布所有事件以及对特定事件感兴趣的控件。我知道有更好的方法来设计,使单元测试变得容易?有什么想法吗?

实现委托将是一个更好的选择。

您是否考虑过一个递归调用,它只遍历所选控件的所有父控件?而不是需要使用维护的列表?我不确定这在这个特定的例子中是否有帮助。这对于triggeredI已经提到的每个事件来说都是非常低效的。请详细说明