C#自定义事件及用法实例
本文实例讲述了C#自定义事件及用法。分享给大家供大家参考。具体分析如下:
事件是C#中一个重要的内容,MSDN上有一个自定义事件的演示示例。我看了半天有点晕,所以新建了一个winform工程添加了一个按钮,然后找出调用的程序,一对比做了一个类似的示例,就明白了。看代码有时候比看文档来得更快。
所以还是一贯的原则,来干的,不来稀的。
usingSystem;
namespaceTestEventArgs
{
///<summary>
///这个类对应于EventArgs,做对比学习。
///添加两个内容:info1,info2。
///</summary>
publicclassMyEventArgs:EventArgs
{
privateStringinfo1;
privateUInt32info2;
publicMyEventArgs(Stringinfo1,UInt32info2)
{
this.info1=info1;
this.info2=info2;
}
publicStringInfo1
{
get{returnthis.info1;}
set{this.info1=value;}
}
publicUInt32Info2
{
get{returnthis.info2;}
set{this.info2=value;}
}
}
///<summary>
///仿真Button按钮
///</summary>
publicclassMyButton
{
publicdelegatevoidMyEvnetHandler(objectsender,MyEventArgse);
///<summary>
///按钮点击的次数计数器
///</summary>
publicstaticUInt32clicked_num=0;
publiceventMyEvnetHandlerMyClick;
publicvoid触发()
{
MyEventArgsarg=newMyEventArgs(DateTime.UtcNow.ToString(),++clicked_num);
MyClick(this,arg);
}
}
///<summary>
///仿真Form窗体
///</summary>
publicclassMyForm
{
publicMyButton按钮;
publicMyForm()
{
按钮=newMyButton();
按钮.MyClick+=newMyButton.MyEvnetHandler(this.button_Clicked);
}
publicvoidbutton_Clicked(objectsender,MyEventArgse)
{
Console.WriteLine("buttonclicked(senderis:"+sender.ToString()+";info1="
+e.Info1+";info2="+e.Info2);
}
}
classProgram
{
staticvoidMain(string[]args)
{
MyForm窗体=newMyForm();
for(inti=0;i<10;i++)
{
窗体.按钮.触发();
System.Threading.Thread.Sleep(500);
}
Console.WriteLine("Pressanykeytocontinue...");
Console.ReadKey();
}
}
}
希望本文所述对大家的C#程序设计有所帮助。