解释下为什么

来源:百度知道 编辑:UC知道 时间:2024/05/25 05:19:59
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Print KeyCode

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
Print KeyAscii

End Sub
运行输入 A
显示什么?为什么
为什么第二次是小写的ascii码值

有两种情况
1. 显示 6565
2. 显示 6597

第一种情况主要是大写灯是亮的(大写状态),第二种是大写灯不这(小写状态)
两种输出主要是由于两个事件的含义:
keydown最先执行,当键一按下即触发该事件,此事件中KeyCode只体现当前用户所按的键在键盘上的位置,与其值无关,也就是说如果你按了A键,无论当前是大写还是小写,该值都是65

keypress键最后执行,它主要体现用户按的键所对应的值是什么,对于字母键,则会区分大小写.

显示:
65
97
当按下A时,触发Form_KeyDown,在窗体上显示A键的ASCII码值65(与字母A的ASCII码值相同);
当松开A时,触发Form_KeyPress,在窗体上显示A的ASCII码值97(引发KeyPress 事件的按键,即A的Ascii 值)。

楼上说的很清楚了,呵呵,本来还想补充的,没必要了。