在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

arrow
arrow
    全站熱搜

    atratus 發表在 痞客邦 留言(0) 人氣()