有時候我們做WinForm開發的時候需要兩個winform進行傳值或是事件的響應,用委托傳值應該是比較專業一點的做法,下面是我的實作:
1 public delegate void OutLookBarDelegateClickEventHandler(string Item);
2 class OutLookBarDelegate
3 {
4 public static OutLookBarDelegate Instance;
5 public event OutLookBarDelegateClickEventHandler OutLookBarClick; //定義事件
6
7 /// <summary>
8 /// 構造器,建立一個執行個體。
9 /// </summary>
10 static OutLookBarDelegate()
11 {
12 Instance = new OutLookBarDelegate();
13 }
14 /// <summary>
15 /// 實作事件
16 /// </summary>
17 /// <param name="e">大樣欄目點選事件</param>
18 public virtual void OnOutLookBarClick(string Item)
19 {
20 if (OutLookBarClick != null)
21 {
22 OutLookBarClick(Item);
23 }
24 }
委托事件的觸發如下:
1 OutLookBarDelegate.Instance.OnOutLookBarClick(item.Text); //觸發事件
委托事件的響應如下 :
1 OutLookBarDelegate.Instance.OutLookBarClick+=new OutLookBarDelegateClickEventHandler(Instance_OutLookBarClick);
1 public void Instance_OutLookBarClick(string item)
2 {
3 //to do something
4 }
整個過程就是這樣的。