c#代码如下:
private void Form_Load()
{ Button myBTN=new Button();
myBTN.Click+=new EventHandler(OKClick);
}
private void OKClick(object sender,EventArgs e)
{
MessageBox.Show("事件处理过程");
}
请问各位高手,我如何在OKClick过程中的参数e 中加入自己的属性,比如string类型的属性MyMsg;并且要求达到在Form_Load中给这个MyMsg赋值的目的?
private void Form_Load()
{ Button myBTN=new Button();
myBTN.Click+=new EventHandler(OKClick);
}
private void OKClick(object sender,EventArgs e)
{
MessageBox.Show("事件处理过程");
}
请问各位高手,我如何在OKClick过程中的参数e 中加入自己的属性,比如string类型的属性MyMsg;并且要求达到在Form_Load中给这个MyMsg赋值的目的?
{
string msg;
public MeButtonEventArgs(string msg)
{ this.msg = msg; }
public string Message
{ get{return message;} set{ message = value;} }
}public delegate void MyButtonClickEventHandler(object sender, MyButtonEventArgs e);在你的类中添加一个事件成员:public event MyButtonClickEventHandler ButtonClick;然后在你的OKClick中:if( ButtonClick != null)
{
MyButtonEventArgs args = new MyButtonEventArgs("你需要添加的消息");
ButtonClick(sender, args );
}
第一个类:
public class QQHyperLinker
{
public delegate void QQClickHandler
(
object lc_ObjectBOX,
string ls_StringBOX
);
public event QQClickHandler QQClick;
//请注意,这里没有代码用来触发QQClick事件。因为这个类不允许重写Click事件。所以也就没有没有什么时机触发它了
}第二类:
public class Class2
{
QQHyperLinker bc_Link = new QQHyperLinker();
bc_Link.QQClick += new QQHyperLinker.QQClickHandler(CallIE1);
上面这句代码是正确的,但是,问题出现了,在第一个类里面,并没有触发QQClick事件的过程,所以,第二个类,也就是上面这句代码永远也发挥不了作用,第一个类里是不允许重写
Click事件的,所以我怎么样实现触发这个QQClick事件呢?
}
如果需要自己发送信息,那可以重载EventArgs,然后定义委托和事件,niwalker() 已经写的很清楚了。如果有不清楚,你可以看看《.net框架程序设计(修订版)》,里面事件和委托讲的很仔细!