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来传递参数。如何传递?
/// 事件调用
/// </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来传递参数。如何传递?
{
// 摘要:
// System.EventArgs 是包含事件数据的类的基类。
[Serializable]
[ComVisible(true)]
public class EventArgs
{
// 摘要:
// 表示没有事件数据的事件。
public static readonly EventArgs Empty; // 摘要:
// 初始化 System.EventArgs 类的新实例。
public EventArgs();
}
}
EventArgs没有提供任何传递参数的方法,你要想传递参数,就写一个class继承EventArgs,然后在你写的class中提供属性,这样就可以传递了
void LinkButton_Command(Object sender, CommandEventArgs e)
{
Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
}
//“EventArgs”并不包含对“CommandArgument”的定义
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"
}
//定义事件----//方法一
public event EventHandler<MyEventArgs> OnClick;
----方法二
//定义委托
public delegate void MyDelegate(object sender,MyEventArgs e);
//定义事件
public event MyDelegate OnClick;
http://blog.csdn.net/zhzuo/archive/2008/07/23/2699305.aspx
http://blog.csdn.net/zhzuo/archive/2008/07/23/2699847.aspx