原文:http://www.sosuo8.com/article/show.asp?id=1013 (建议看原文)
坦白说自定义事件在asp.net中用到的机率确实很低,但低并不代表没有用到。尤其是在做自定义控件的时候,嘿嘿,自定义事件几乎就不可避免地要用到。
记得以前在博客http://yeah888.blog.sohu.com/上写过一个关于自定义事件在asp.net中的使用的帖子。那个例子是不带参数,现在回过头来看看,确实不大爽。所以今天有空就把那个例子重做了一次。注意,我并不是强调自定义事件就一定要带参数才算是事件,我只是拿那个例子小题大做,目的就是为了说明自定义事件带参数的应用而已。
好了,废话少说,看代码:
//
1.首先定义一个参数类
public partial class SayEventArgs : EventArgs
{
public String Username;
public String Websiteurl;
}
// 2.定义一个委托
public delegate void SayEventHandler( object sender,SayEventArgs e);
// 3.定义一个事件
public event SayEventHandler SayEvent;
// 4.引发事件
public void OnSayEvent(SayEventArgs e)
{
if (SayEvent != null )
{
SayEvent( this , e);
}
}
// 5.传参函数
public void Loginsite(String Username, String Websiteurl)
{
SayEventArgs e = new SayEventArgs();
e.Username = Username;
e.Websiteurl = Websiteurl;
Label1.Text = e.Username + " <br> " ;
Label1.Text += " 欢迎你来到<a href= " + e.Websiteurl + " >痞子菜雨夜听风小轩</a> " ;
OnSayEvent(e);
}
// 6.所要委托的函数
public void Saysomething( object sender, SayEventArgs e)
{
Label2.Text = e.Username + " 请注意:<br>在呢个博客<a href= " + e.Websiteurl + " >痞子菜雨夜听风小轩</a>度,唔系事必要你讲野,但系你所讲既野将来会作为呈堂证供,ok? " ;
}
// 7.建立委托实例
SayEvent += new SayEventHandler(Saysomething);
Loginsite( " 痞子菜 " , " u/admin/index.html " );
public partial class SayEventArgs : EventArgs
{
public String Username;
public String Websiteurl;
}
// 2.定义一个委托
public delegate void SayEventHandler( object sender,SayEventArgs e);
// 3.定义一个事件
public event SayEventHandler SayEvent;
// 4.引发事件
public void OnSayEvent(SayEventArgs e)
{
if (SayEvent != null )
{
SayEvent( this , e);
}
}
// 5.传参函数
public void Loginsite(String Username, String Websiteurl)
{
SayEventArgs e = new SayEventArgs();
e.Username = Username;
e.Websiteurl = Websiteurl;
Label1.Text = e.Username + " <br> " ;
Label1.Text += " 欢迎你来到<a href= " + e.Websiteurl + " >痞子菜雨夜听风小轩</a> " ;
OnSayEvent(e);
}
// 6.所要委托的函数
public void Saysomething( object sender, SayEventArgs e)
{
Label2.Text = e.Username + " 请注意:<br>在呢个博客<a href= " + e.Websiteurl + " >痞子菜雨夜听风小轩</a>度,唔系事必要你讲野,但系你所讲既野将来会作为呈堂证供,ok? " ;
}
// 7.建立委托实例
SayEvent += new SayEventHandler(Saysomething);
Loginsite( " 痞子菜 " , " u/admin/index.html " );
看到了吗?定义事件也就这几步,要复杂点的话就把函数写得复杂点就行了。就这样。