class bbb
{
  public delegate void m_ControlClick(XmlNode node);
public event m_ControlClick zkControlClick;   void aaa()
{
   zkControlClick( node);
}
}
提示zkControlClick  没有初始化这是为什么啊跟http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/00d09cc3-c2da-44c2-9e53-3a273a856b82跟的问题差不多

解决方案 »

  1.   

    class bbb 

      public delegate void m_ControlClick(XmlNode node); 
    public event m_ControlClick zkControlClick; 
    zkControlClick+=delMethod_ControlClick;  void aaa() 

      zkControlClick( null); 


    public void delMethod_ControlClick(XmlNode node)
    {
    MessageBox.Show("Hello");

      

  2.   

    提示zkControlClick  没有初始化这是为什么啊 
    是因为zkControlClick  没有被订阅
    触发事件最好这样写:
    void aaa() 

      m_ControlClick _Handle= zkControlClick;
      if (_Handle!=null)
         zkControlClick( node); 

      

  3.   

    你的事件没有增加啊zkControlClick
      

  4.   

    我的这个bbb是被另外一个类调用的   那个类里
    class ccc
    {
      ccc()
    {
        new bbb().zkControlClick += new sln.m_ControlClick(frmsln_zkControlClick);
    }
    void frmsln_zkControlClick()
    {
    messagebox.show("asdf");
    }
    }
    在aaa这个类里注册了那个事件
      

  5.   


    class ccc 

        ccc(bbb b) 
        { 
            // 不能随意new一个bbb的对象,必须订阅指定对象的事件。所以楼主需要重载一个
             // 构造函数
            b.zkControlClick += new sln.m_ControlClick(frmsln_zkControlClick); 
        } 
    void frmsln_zkControlClick() 

    messagebox.show("asdf"); 

      

  6.   

    算了  我把源代码贴出来public partial class Form2 : Form
    {
    public Form2()
    {
    InitializeComponent();
    } public delegate void WebClientEvent(string data);
    public event WebClientEvent nasha; private void Form2_Load(object sender, EventArgs e)
    {
    nasha("aaa");
    }
    }提示nasha没有初始化下面这个是调用的地方
     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            { Form2 f = new Form2();
    f.nasha += new Form2.WebClientEvent(f_nasha);
    f.Show();
                
            } void f_nasha(string data)
    {
    MessageBox.Show(data);
    }
        }
      

  7.   

    我运行了你的代码,没有任何错误,正常执行弹出"aaa"
      

  8.   

     我知道你错在哪里了,你的起始窗口不是Form1,而是Form2。改过来试试,没有问题就结贴吧,嘿嘿
      

  9.   

    算了  我真正运行这个的代码没法贴出来      上面那段我知道没有错误  贴出来就是为了抛砖引玉就是个函数指针的传递搞他妈这么累 cao了