Form_KeyDown事件与Form_KeyPress事件是二个不同的事件,Form_KeyDown事件是在窗体获得焦点时按下一个键盘的键是发生的事件,Form_KeyPress事件是按下或松开一个ANSI键发生的事件。
在Form_KeyDown事件中有二个参数,一个是KeyCode,是键代码,
注意:是键代码,另一个是Shift,是事件发生时响应Shift、Ctrl、Alt键状态的整数。
在Form_KeyPress事件只有一个参数,KeyAscii是返回标准的ANSI键代码,
注意:是返回标准的ANSI键代码,是一个整数,是标准的ANSI键代码的整数。
因此二个事件的返回值是不一样的。不然你试试下面这个代码:
程序代码:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Label1.Caption = KeyCode
Print Chr(KeyCode)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Label2.Caption = KeyAscii
Print Chr(KeyAscii)
End Sub
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
二个标签中显示的数字是不一样的,Label1.Caption 显示的是键代码,Label2.Caption 显示的是标准的ANSI键代码。
因此你调用Chr()函数返回的字母就不一样了。
[此贴子已经被作者于2016-10-13 20:06编辑过]