一篇将自定义事件(定义委托、定义事件、通过委托绑定事件触发函数、触发事件的函数、以及触
发事件函数的函数,行为事件触发前者)、System.EventArgs 事件数据类基类诠释的很不错的一篇文章。
 
1.定义委托
public delegate void LabelContextChangedHandler(object sender,
LabelContextChangedEventArgs e);
 
2.定义事件
public event LabelContextChangedHandler LabelContextChanged;

3.通过委托绑定事件触发函数
 protected void Page_Load(object sender, EventArgs e)
    {
        TestWebUserControl1.LabelContextChanged += new LabelContextChangedHandler
(TestWebUserControl_LabelContextChanged);
    }

4.触发事件的函数
    private void OnLabelContextChanged(object sender, LabelContextChangedEventArgs e)
    {
        if (LabelContextChanged != null)
        {
            LabelContextChanged(sender, e);
        }
    }

5.触发事件函数的函数
public void ChangeLabelContext(object sender, string value)
    {
        Label1.Text = value;
        OnLabelContextChanged(sender, new LabelContextChangedEventArgs(value));
    }
 
6.行为事件触发5
protected void Button2_Click(object sender, EventArgs e)
    {
        TestWebUserControl1.ChangeLabelContext(sender, "hi");
        TestWebUserControl2.ChangeLabelContext(sender, "cnblogs");
    }
文章附件为cnblogs一博友的源码。