keyascii和keycode的区别 有个题不懂 麻烦各位大神

Private Sub form_keydown(keycode As Integer, shift As Integer)
Print Chr(keycode)
End Sub
Private Sub form_keypress(keyascii As Integer)
Print Chr(keyascii)
End Sub

按下A为什么是A和a呢,ascii码的话不应该直接就是A的ascii码吗?不懂不懂啊

keycode是键的虚拟键码,每个键都对应一个唯一的虚拟键码,比如[A]键,在任何情况下,它的keycode都是65。

keyascii是键的ASCII码,同一个键在不同情况下会有不同的ASCII码,比如同样的[A]键,在单独按下时是97(即小写a),而在按住shift键再按[A]键或在大写锁定键打开的情况下再按[A]键,则是65(即大写A)。

虚拟键码与ASCII码是两种不同的概念,前者是硬件的(或者说是物理的),后者则是偏重于软件上的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-06
keycode指的是按键的码,keyascii指的是输出字符的ascii码,所以不输出字符的按键就不会有keyascii,但是肯定会有keycode
单独按下A键的时候,假设此时大小写锁定是在小写,那么keycode对应的就是A键的码65,keyascii对应的是小写a的ascii码97,所以经过chr变换之后就分别是A和a了
第2个回答  2012-08-06
因为你加了 chr()函数:
chr()函数的作用是返回其参数所表示的字符,参数是这个字符的ASCII码。
把chr()函数删掉那么返回的就是这个字符的参数,而不是按键后返回的参数再经过chr()函数转换后返回的字符了。
相似回答