l KeyDown事件:按下鍵盤(pán)上的任意鍵
l KeyUp事件:釋放鍵盤(pán)的任意鍵
l KeyPress事件:按下對(duì)應(yīng)某ASCII字符的鍵
(11)KeyDown事件和KeyUp事件
按下鍵盤(pán)上的任意一個(gè)鍵,就會(huì)引發(fā)當(dāng)前具有焦點(diǎn)的對(duì)象的KeyDown事件。釋放時(shí),則會(huì)引發(fā)該對(duì)象的KeyUp事件。
以窗體為例,KeyDown事件和KeyUp事件的語(yǔ)法如下:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
①Keycode參數(shù)
KeyCode參數(shù)是一個(gè)整數(shù),返回所按鍵的鍵碼值。鍵碼值是以“鍵”為準(zhǔn)。例如,由于大寫(xiě)字母和小寫(xiě)字母使用同一鍵,因此“A”和“a”的鍵碼值是相同的。又如大鍵盤(pán)上的數(shù)字“1”和小建盤(pán)上的數(shù)字“1”,雖然是同一數(shù)字,但由于鍵不同,它們的鍵碼值也不相同。常用鍵的鍵碼值如表4-1所示:
表4-1 常用鍵的鍵碼值
②Shift參數(shù)
Shift參數(shù)是一個(gè)整數(shù)值,返回Shift、Ctrl、Alt的狀態(tài)。只有檢查此狀態(tài)才能判斷輸入的是大寫(xiě)還是小寫(xiě)字母。
Shift參數(shù)用來(lái)判斷是否按下了鍵盤(pán)上的Shift、Ctrl和Alt,或這3個(gè)鍵的任意組合,其對(duì)應(yīng)的關(guān)系如表4-2所示:
表4-2 Shift的取值和Shift、Ctrl和Alt組合狀態(tài)的對(duì)應(yīng)關(guān)系
下面的代碼將測(cè)試你當(dāng)前按下的鍵,并通過(guò)消息框告訴你。
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim ShiftKey As Integer
ShiftKey = Shift And 7 '7對(duì)應(yīng)為1+2+4
Select Case ShiftKey
Case 1 '或VbShiftMask
MsgBox "You pressed the Shift key."
Case 2 '或VbCtrlMask
MsgBox "You pressed the Ctrl key."
Case 4 '或VbAltMask
MsgBox "You pressed the Alt key."
End Select
End Sub