事件處理的簡單理解

2022-02-07 11:10:32 字數 588 閱讀 4958

定義乙個處理事件的委派類

private delegate void eventtesthandler(string str);// 引數str可以有,也可以沒有

定義事件源,由此引發對事件的處理

private event eventtesthandler leadevent;

在建構函式中新增事件觸發時,發生的處理機制,把事件源和處理事件的方法掛在一起

this.leadevent += new eventtesthandler(dosth);. // 其中dosth就是我們事件引發的方法.

接下來我們定義dosth方法,可以看到dosth其實可以理解為是eventtesthandler委派類的乙個例項,所以引數必須一致

private void dosth(string){}

然後把事件源新增在合適的位置

比如button1_click(...)

if (leadevent != null)

leadevent("sjdaldsjsadad"); // 此處,當點選button1時,即觸發了leadevent事件,事件通知dosth方法,對引數"sjdaldsjsadad"執行操作處理.

事件分發機制簡單理解

viewgroup view 分發事件 分發事件 dispatchtouchevent dispatchtouchevent 攔截事件 onintercepttouchevent 處理事件 處理事件 ontouchevent ontouchevent viewgroup 事件開始 dispatcht...

簡單理解委託和事件

什麼是委託?委託就是持有乙個或者多個方法的物件!並且該物件可以執行,可以傳遞。宣告委託型別?委託可以持有方法,那麼持有什麼樣的方法呢?可以宣告,它是一種引用型別。delegate void actcute 定義委託型別的物件?既然是種型別,就可以定義該型別的物件。actcute actcute 給委...

C 簡單的理解委託和事件

在c 中可以利用 函式指標 將對方法的引用作為實參傳遞給另乙個方法,而c 中可以利用委託提供相同的功能。但是委託實際上是乙個特殊的類。委託必須直接或間接的派生自system.delegate。實際的委託型別總是派生自system.multicastdelegate 建立委託的時候,編譯器自動繼承的是...