自已写一个事件委托,因为System.EventHandler委托本身就带有object sender, System.EventArgs e这两个参数的。

解决方案 »

  1.   

    是的,必须带有参数,C#中的事件是使用 delegate (代理)来实现的,去看看这一方面的资料,你会明白是怎么回事的。
      

  2.   

    你可以自己定义一个代理来加你的参数,但是你不可以你做法1那样做:newSx.button1.Click += new System.EventHandler(this.pro_abc)//这里的proc_abc实际是一个函数的地址而不是调用这个函数.
      

  3.   

    你如果想实现这个Click时调用如下的方法:
    private void pro_abc(int mStat)
    {
        代码
    }
    你可这样来用嘛:
    newSx.button1.Click += new System.EventHandler(this.pro_abc)
    private void pro_abc((object sender, System.EventArgs e))
    {
        pro(1);
    }
    private void pro(int mStat)
    {
        代码
    }
      

  4.   

    有没更好的办法呢? 如果我用楼上的方法来实现,的确写的代码比较多。
    因为我要 传送的参数 是在第一段代码那里就运行出来的,如果这样我就必须多一个变量来存放,然后再在 第二段代码 那里调用。 如: pro(要传的参数)