自定義事件

一篇將自定義事件(定義委託、定義事件、通過委託綁定事件觸發函數、觸發事件的函數、以及觸
發事件函數的函數,行爲事件觸發前者)、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一博友的源碼。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章