我們可以把事件程式設計簡單地分成兩個部分:事件發生的類(書面上叫事件發生器)和事件接收處理的類。事件發生的類就是說在這個類中觸發了乙個事件,但這個類並不知道哪個個物件或方法將會加收到並處理它觸發的事件。所需要的是在傳送方和接收方之間存在乙個媒介。這個媒介在.net framework中就是委託(delegate)。在事件接收處理的類中,我們需要有乙個處理事件的方法。好了,我們就按照這個順序來實現乙個捕獲鍵盤按鍵的程式,來一步一步說明如何編寫事件應用程式。
1、首先建立乙個自己的eventargs類。
引自msdn:
eventargs是包含事件資料的類的基類,此類不包含事件資料,在事件引發時不向事件處理程式傳遞狀態資訊的事件會使用此類。如果事件處理程式需要狀態資訊,則應用程式必須從此類派生乙個類來儲存資料。
因為在我們鍵盤按鍵事件中要包含按鍵資訊,所以要派生乙個keyeventargs類,來儲存按鍵資訊,好讓後面知道按了哪個鍵。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using ffmpegsharp.ffmpeg;
using tensorflow;
using system.numerics;
public
char keychar
}}internal
class
keyinputmonitor
}while
(!finished);}
}internal
class
eventreceiver
private
void
onkeydown
(object sender,
keyeventargs e)
", e.keychar);}
}class
program
}}
總結:
○ 委託就是乙個類,也可以例項化,通過委託的建構函式來把方法賦值給委託例項
○ 觸發委託有2種方式: 委託例項.invoke(引數列表),委託例項(引數列表)
○ 事件可以看作是乙個委託型別的變數
○ 通過+=為事件註冊多個委託例項或多個方法
○ 通過-=為事件登出多個委託例項或多個方法
○ eventhandler就是乙個委託
事件物件event
1.e.client 相對於當前頁面 視窗,不是這個元素 可視區域的左頂點 document.onmousemove function e 2.e.screen 相對於計算機螢幕的左頂點 document.body.onclick function e 3.offset 事件觸發時滑鼠距離該元素左邊...
事件物件(event)
再觸發dom上的某個事件時,會產生乙個事件物件event,這個物件中包含著所有與事件有關的資訊。所有瀏覽器都支援event物件,但支援的方式不同。1.事件物件的獲取 event的獲取 event內容重要內容 2.screenx pagex和clientx的區別 3.pagey和pagex的相容寫法 ...
Event事件詳解
首先提到event,先要明白event的產生,也要先明白焦點,什麼是焦點。焦點 使瀏覽器能夠區分使用者輸入的物件,當乙個元素有焦點的時候,那麼他就可以接收使用者的輸入。我們可以通過一些方式給元素設定焦點。而並不是所有元素都能夠接收焦點的,能夠響應使用者操作的元素才有焦點。例如 text 說到inpu...