A-A+
把窗体的KeyPreview属性设置为True 然后编写如下两个事件过程: Prirate
问题详情
把窗体的KeyPreview属性设置为True,然后编写如下两个事件过程: Prirate 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”键(即不按住Shift键),则在窗体上输出的字符分别是【 】和【 】。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A a
如果希望窗体先接收键盘事件,刚必须把窗体的KeyPreview属性设置为True,否则不能触发窗体的键盘事件。这里所说的键盘事件包括KeyPress、KeyDown和KeyUp。当不按住Shift键,直接按键盘上的“A”键时(实际上就是输入“a”),先触发Form_KeyDown事件,然后再触发Form_KeyPress事件。KeyDown事件返回的是“键代码”(KeyCode),字母“A”和“a”的“键代码”都为65,所以Printchr(KeyCode)打印出字符“A”;KeyPress事件返回的是“ASCII码”(KeyAscii),“a”值97,所以PrintChr(KeyAscii)打印出字符“a”。