我想在一个对象中调用另一个对象的事件,这个改如何实现啊?

解决方案 »

  1.   

    实例化你的[另一个对象],
    然后该对象引用 += 就在注册该对象的事件
    事件必须公开例如:                                Button btn = new Button();
                                    btn.Click+=new EventHandler(btn_Click);
      

  2.   

    比较麻烦,似乎从event中想把委托取出来比较有难度
    狂搜吧,我记得有说过可以用反射怎么搞来着,然后取第几个字段,然后强转,可以得到一个委托类型的列表
    然后用这个委托的Invoke来调用,感觉太麻烦了点
      

  3.   


    using System;
    namespace myspace
    {
      class A
      {
         public delegate void CuttomHandler(string message);
     public event CuttomHandler testHandler;
     
     public void testEnent()
     {
        string str = "Hello world";
        if(testHandler!=null) this.testHandler(str);
     }
      }
      class B
      {
         public static void Main()
     {
        A a = new A();
    a.testHandler += new A.CuttomHandler(B_testHandler);
    a.testEnent();
     }
     static void B_testHandler(string message)
         {
       Console.WriteLine(message);
     }
      }
    }例子