Option ExplicitPrivate sShift As Integer Private sKeyCode As IntegerPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) sShift = Shift sKeyCode = KeyCode Debug.Print "KeyDown KeyCode:" & KeyCode & " Shift:" & Shift End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) Debug.Print "keyPress" & KeyAscii '在这里调用sShift和sKeyCode就可以子, 'keypress总是在KeyDown后发生。 End Sub运行时查看立即窗口shift的值就可以知了。
Option ExplicitPrivate sShift As Integer Private sKeyCode As IntegerPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) sShift = Shift sKeyCode = KeyCode Debug.Print "KeyDown KeyCode:" & KeyCode & " Shift:" & Shift End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) Debug.Print "keyPress" & KeyAscii '在这里调用sShift和sKeyCode就可以子, 'keypress总是在KeyDown后发生。 End Sub '运行一下,查看立即窗口中shift的值,就可以知道关系了。
如果真的有这个函数的话,怎么用?
Private sKeyCode As IntegerPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
sShift = Shift
sKeyCode = KeyCode
Debug.Print "KeyDown KeyCode:" & KeyCode & " Shift:" & Shift
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print "keyPress" & KeyAscii
'在这里调用sShift和sKeyCode就可以子,
'keypress总是在KeyDown后发生。
End Sub运行时查看立即窗口shift的值就可以知了。
Private sKeyCode As IntegerPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
sShift = Shift
sKeyCode = KeyCode
Debug.Print "KeyDown KeyCode:" & KeyCode & " Shift:" & Shift
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print "keyPress" & KeyAscii
'在这里调用sShift和sKeyCode就可以子,
'keypress总是在KeyDown后发生。
End Sub
'运行一下,查看立即窗口中shift的值,就可以知道关系了。
-----------------------------
小写s不加CTRL
Keycode=83 58786KeyAscii=115 58786
----------------------------
小写s加CTRL
Keycode=17 58971.79Keycode=83 58971.89KeyAscii=19 58971.89
---------------------------小写d不加CTRL
Keycode=68 59025.49KeyAscii=100 59025.49---------------------------
小写d加CTRL
Keycode=17 59029.75Keycode=68 59029.84KeyAscii=4 59029.84不知道怎么一个算法啊,请再指点一下.
比如:
Ctrl=17
s=115
Ctrl+s=19