說的通俗一些,就是:
有一個叫做EventHandler 的家伙,他會告訴你(主程序),有一些事情發生了:這個事情是誰導致的呢?是某個object類型對象導致的,它用Source或Sender來表示。這個事情是什麼事呢?e的內容就是事情的內容了。
至於Source和Sender,沒有區別,你想用哪個就用哪個,其實都是一樣的。
所以,我們在程序中的事件處理函數就是依賴於這個東西實現的:比方說你點了一個按鈕,程序怎麼知道應該用哪個函數來處理這個動作呢?那麼EventHandler 這個家伙會告訴程序:"button1(sender)被點擊(e)了,請調用對應的處理函數"。當然這個函數是誰,這個函數要做什麼,是由你自己寫的。
再深入一層,這個過程實際上就是:你的動作被windows捕獲,Windows把這個動作作為系統消息發送給程序(可以看message結構),程序從自己的消息隊列中不斷的取出消息,並在消息循環中尋找對應的處理方式,這時message結構中的類似於sender和e的東東就起到了引導程序使用正確的處理函數的作用。
歸根究底,這個sender和e及其一整套的處理方式,只不過是Windows消息機制的另外一種表現罷了 ^_^
是C#.Net的.
object sender 發出事件的對象
System.EventArgs e 對象中的數據
如果是按鈕button的話,那sender就是那個button,
e是事件參數,在某些事件裡,e用處不大,比如在MouseEventArgs的Mouse事件中,可以看到e包括mouse的坐標值等,以供你的程序使用。