利用KeyDown事件,我們很輕易地就可以編出讓程序響應兩個按鍵的組合鍵的事件,如:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
if Shift=1 and KeyCode=VbKeyM then
msgbox "您按下了Shift+M鍵"
end if
end sub
如果要讓程序響應三個鍵的組合鍵就要麻煩一點,比如現在要用shift+b+m打開"部門"窗體。
首先要聲明兩個窗體級變量mSta/bSta保存M及B鍵的按鍵狀態,然後在窗體的Load事件裡設置KeyPrevIEw(鍵預覽)為True,以便窗體先於控件接收鍵盤事件。
在KeyDown事件裡判斷按鍵,如果按下M或B,就把mSta或bSta置為True。
在KeyUp事件裡判斷按鍵,如果放開M或B,就把mSta或bSta置為false。
做完這些事後就可以在KeyDown事件裡判斷是否按下了Shift+M+B鍵了,代瑪如下:
Dim mSta As Boolean
Dim bSta As Boolean
Private Sub Form_Load()
Me.KeyPrevIEw = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyM Then
mSta = True
End If
If KeyCode = vbKeyb Then
bSta = True
End If
If Shift = 1 And mSta = True And bSta = True Then
DoCmd.OpenForm "部門"
mSta = False
bSta = False
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyM Then
mSta = False
End If
If KeyCode = vbKeyB Then
bSta = False
End If
End Sub