其他类的事件触发时通知我haveclassA{Bb;//当b.Button_click或b.someMethod启动时调用此方法privatevoidMyMethod(){}??}ClassB{//这里即按下按钮,在A类中//我想在按下按钮后在A类中调用MyMethod()privatevoidButton_Click(objecto,EventArgss){SomeMethod();}publicvoidSomeMethod(){}??类A有一个类B的实例。如何才能做到这一点?您需要在“B”类上声明一个公共事件-并让“A”类订阅它:像这样:classB{//ApubliceventforlistenerstosubscribetopubliceventEventHandlerSomethingHappened;privatevoidButton_Click(objecto,EventArgss){//触发事件-通知所有订阅者if(SomethingHappened!=null)SomethingHappened(this,null);}....classA{//使用B的地方-订阅它的公共事件publicA(){BobjectToSubscribeTo=newB();objectToSubscribeTo.SomethingHappened+=HandleSomethingHappening;}publicvoidHandleSomethingHappening(objectsender,EventArgse){//在这里做点什么}....你需要三件事(在代码中用注释标记):当事件在类B中声明时在类B中引发一个事件(在你的情况-执行Button_Click事件处理程序)。请记住,您需要验证是否存在任何订阅者。否则,您将在引发事件时收到NullReferenceException。订阅B类事件。您需要拥有B类实例,甚至您想要订阅(另一个选项-静态事件,但这些事件将由B类的所有实例引发)。代码:类A{Bb;公共A(Bb){this.b=b;//订阅事件b.SomethingHappened+=MyMethod;}privatevoidMyMethod(){}}classB{//声明事件publiceventActionSomethingHappened;privatevoidButton_Click(objecto,EventArgss){//引发事件if(SomethingHappened!=null)SomethingHappened();一些方法();事件看看如何通过持有事件来处理和完善事件:引发和消费事件以上是C#学习教程:触发其他类的事件时,通知分享的全部内容,如果对大家有用,你需要想了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
