System.ComponentModel.CancelEventArgs e  是什么作用和意思?一般不都是EventArgs e参数吗?

解决方案 »

  1.   

    一般不都是EventArgs e参数吗?是你所看到的都是EventArgs,而不是“一般”事实上事件处理过程的参数(事件参数)可以是任意的。比如:public MyEventArgs : EventArgs
    {
        public int Value{get;set;}
    }public delegate void MyEventHandler (MyEventArgs e);public event MyEventHandler MyEvent;protected virtual void DoEvent(MyEventArgs e)
    {
        if (MyEvent != null) MyEvent(e);
    }
    那么在订阅方,就可以:obj.MyEvent += new MyEventHandler(func);void func(MyEventArgs e)
    {
        Console.WriteLine(e.Value);
    }从你的角度看,你就看到了func有一个非标准的事件参数“MyEventArgs”,你可以去看看C#中委托与事件相关的知识,就能了解这个问题的本质了。
      

  2.   

    用什么EventArgs主要是看你的EventHandler委托的定义
    实际上用什么类型都可以。