在winform的環境下,如果使用者觸發鍵盤,我們要怎麼區分他是按下左邊的Ctrl還是右邊的Ctrl,或者是按下NumPad的Enter還是一般的Enter呢?
可以利用下面的方式區分,甚至改變按鍵的行為:
Public Class Form1
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.Msg = &H100 Then
If keyData = Keys.Return Then
If CInt(msg.LParam) = 18612225 Then
' 這是按下NumPad的Enter,並改成觸發Tab鍵
SendKeys.Send("{TAB}")
Return True
Else
' 這是按下一般的Enter
End If
ElseIf keyData = 131089 Then
If CInt(msg.LParam) = 18677761 Then
' 這是右邊的Ctrl
Else
' 這是左邊的Ctrl
End If
End If
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class
全站熱搜
留言列表