VB里Form_KeyDown事件的疑问?谢谢!
PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)PrintChr(KeyCode)'如果多了下面的事件For...
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print Chr(KeyCode)
'如果多了下面的事件Form_KeyPress, 这里的Chr(KeyCode)就可准确地返回所按下字母的大小写 如果没有下面的事件,那么这里总是会返回大写字母,为什么啊!好烦...
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Print Chr(KeyAscii)
End Sub 展开
Print Chr(KeyCode)
'如果多了下面的事件Form_KeyPress, 这里的Chr(KeyCode)就可准确地返回所按下字母的大小写 如果没有下面的事件,那么这里总是会返回大写字母,为什么啊!好烦...
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Print Chr(KeyAscii)
End Sub 展开
1个回答
展开全部
这里的keycode和keyascii是两种不同的概念哦,keycode是键盘码,每个键对应一个固定的码,也就是说,A键,不管你是直接按,还是按了大写锁定键再按,或者按着Shift再按,keycode都是一个固定数值65(A)。而keyascii则是Ascii码,也就是通常意义上的字符,按下A键的时候,根据你键盘状态的不同,keyascii会返回65(A)或者97(a)。所以一般情况下,都是使用keypress事件来取得按盘字符,不要用keydown事件。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询