以外的私人控件的EventHandler也许我的设计不好,或者我没有看到明显的解决方案,但我想从form1外部订阅Form1的buttonClick EventHandler。如何订阅除表格
例如我有一个Controller和Form1谁都在主函数中实例化。 现在我想从Controller1的Form1中的Button1_Click buttonClick事件。但button1是declarded私人,所以我不能做
form1->Button1->Click += gcnew EventHandler(controller->function)
有没有什么办法可以解决这个问题?
好吧我可以写一个setter或Form1的东西,但有没有其他解决方案?
我读了一些例子,但它们都是从同一个类中调用事件,所以它们没有解决我的具体问题。
编辑
也许它帮助,如果我说我真的想实现:
确定存在GUI又名Form1中和电脑板类。
如果用户在GUI上触发特定的ButtonClick事件,Controller应该会收到通知。 此外,Controller在运行时应该能够从不同事件中订阅和取消订阅。为了让它变得更加混乱(至少对我来说),控制器应该引发事件,这会触发一些GUI行为,例如启用某些按钮并禁用其他按钮。 所以这就是我想要做的,至少在理论上它听起来不错,但现在我遇到了实施方面的问题。
感谢。后门工作谢谢。 给你第一个建议: 我想这是不可能的,如果我想在运行时添加或删除事件?例如,如果用户进行特定操作,我想订阅新的点击事件或取消订阅现有的事件。 – randooom 2010-06-05 16:56:26
那么,为什么不呢?您使用 - =移除事件处理程序。请注意,它是添加/删除事件处理程序的客户端代码,而不是Form1。发布和提升事件是分开的,代码位于Form1中。 – 2010-06-05 17:03:48
对不起,但我不明白。我必须在Form1中为每个ButtonEvent编写一个add(处理程序)和remove(处理程序)方法吗?对不起,但这对我来说都是非常新奇的东西,所以我有点困惑。 – randooom 2010-06-05 17:13:23