c#自定义事件

来源:互联网 发布:seo网站建站 编辑:程序博客网 时间:2024/05/18 03:05

 

分为三个部分

一、类A 触发事件类   如form控件或者web控件,button
  1、定义委托
    public delegate void Delegate1(object obj);
    //如果是button之类的控件需要带有标号为2的方法
    public delegate void Delegate2(object obj,EventArgs e)
  2、1中委托类型的事件
    
    public event Delegate1 Event1;
    
    public event Delegate2 Event2;
  3、写一个相关方法来调用2中的事件
  
    public void Method1()
    {
     Event1(this);
    }
    public void Method2()
    {
     Event2(this,new EventArgs());
    }
二、类B  处理事件类
  1、定义符合类A中的委托的方法。
  
    public void Manager1(object obj)
    {
     //做事情1
    }
    
    public void Manager2(object obj,EventArgs e)
    {
     //做事情2
    }
    
三、测试类C 使用类 当然此类可以省略,放到类A或者类B中。
  但是为了能够更清晰的分析清楚.这里就单独做为一个类了。
    public static void Main()
    {
     A a=new A();//声明一个触发事件类,可以认为是button
     B b=new B();//声明一个调用button的类,可以认为是控件
     a.Event1+=new A.Delegate1(b.Manager1); //给button添加事件
     a.Method1(); //触发button的事件。这里就会调用b中的Manager1来处理相关的方法
     
     a.Event2+=new A.Delegate2(b.Manager2)     
     a.Method2();
    }

原创粉丝点击