日期:2014-05-18  浏览次数:20924 次

C#里面怎样实现窗口A调用窗口B的事件
如题

------解决方案--------------------
探讨
在A中实例化B
B b=new B()
在A中调用B的方法 直接写 b.method();

就行

------解决方案--------------------
什么叫做“调用窗体B里边的事件”?

当你使用public event .....来定义事件时,c#编译器保证你只能在B窗体实例中自己去触发(抛出事件),别的对象不可能强行让它去触发。你可以为B定一个方法,例如FireEvent()方法,在这个触发事件(因为它就是定义在B自己内部)。这样其它对象就可以访问B对象实例,然后让B触发事件。

不过,你要想想逻辑,这个事件还是原来的逻辑概念吗?比如说TextBox控件的TextChanged事件是表示当用户录入数据的事件,现在你给它增加一个FireTextChangedEvent()方法来让其它对象触发事件,这个事件根本就丧失了原来的概念与流程,这种随意改变逻辑的做法是有害的。
------解决方案--------------------
把窗口B里面要调用的事件改成public的~
然后在窗口A实例化~再调用就可以了~
Form2 F = new Form2();
F.button1_Click(null, null);