btnTest.Click += new EventHandler(btnTest_ClickNew);        /// <summary>
        /// 事件调用
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnTest_ClickNew(object sender, EventArgs e)
        {
            Button btnParent = (Button)sender;
            MessageBox.Show("被按钮" + btnParent.Name + "调用,该按钮文字为:" + btnParent.Text);
        }就是想通过EventArgs来传递参数。如何传递?

解决方案 »

  1.   

    using System.Runtime.InteropServices;namespace System
    {
        // 摘要:
        //     System.EventArgs 是包含事件数据的类的基类。
        [Serializable]
        [ComVisible(true)]
        public class EventArgs
        {
            // 摘要:
            //     表示没有事件数据的事件。
            public static readonly EventArgs Empty;        // 摘要:
            //     初始化 System.EventArgs 类的新实例。
            public EventArgs();
        }
    }
    EventArgs没有提供任何传递参数的方法,你要想传递参数,就写一个class继承EventArgs,然后在你写的class中提供属性,这样就可以传递了
      

  2.   


    void LinkButton_Command(Object sender, CommandEventArgs e) 
          {
             Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
          }
    //“EventArgs”并不包含对“CommandArgument”的定义
      

  3.   

    2楼正解。建议楼主先学习一下.NET的委托及自定义事件。
      

  4.   

    btnTest 这个对象的程序是谁写的?你开发的控件吗?看不出你说的“传递参数”这个想法有没有(发送和接受参数的)根基。
      

  5.   

    恩 没错 如果你想要传递参数的话就要自己来重新写一个类继承子EventArgs
      

  6.   


    EventArgs e; //没有属性,不能传数据如果想传递自己的数据public class MyEventArgs : EventArgs
    {
      private string m_value;
      public MyEventArgs(){}
      public MyEventArgs(string value)
      {
        m_value = value;
      }  public string Value
      {
        get{return m_value;}
        set{m_value = value;}
      }
      //.....
    }public class Test
    {
      private string m_txt = "我是一个Test类";  public string Text
      {
        get{return m_txt;}
        set{m_txt = value;}
      } 
     
    //定义委托
    public delegate void MyDelegate(object sender,MyEventArgs e);
    //定义事件
    public event MyDelegate OnClick;private void button_Click(object sender,EventArgs e)
    {
       //触发事件
       if(OnClick != null)
      {
         OnClick(this,new MyEventArgs("传递了一个123")); //
      }  
    }
    }
    //调用
    类名.OnClick += new MyDelegate(form_OnClick);//事件方法
    void form_OnClick(object sender ,MyEventArgs  e)
    {
      Test t = sender as Test;
      if(t != null)
      {
        MessageBox.Show(t.Text); //输出: "我是一个Test类"
      }
      
      MessageBox.Show(e.Value);  //输出: "传递了一个123"
    }
      

  7.   


    //定义事件----//方法一
    public event EventHandler<MyEventArgs> OnClick;
    ----方法二
    //定义委托
    public delegate void MyDelegate(object sender,MyEventArgs e);
    //定义事件
    public event MyDelegate OnClick;
      

  8.   

    通过事件传递参数是很典型的应用呀,可以参考我写的代码(异步方式的典型应用)
    http://blog.csdn.net/zhzuo/archive/2008/07/23/2699305.aspx
    http://blog.csdn.net/zhzuo/archive/2008/07/23/2699847.aspx