把窗体的KeyPreview属性设置为True,并编写如下两个事件过程: Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) Print KeyCode; En

admin2009-03-15  53

问题 把窗体的KeyPreview属性设置为True,并编写如下两个事件过程:
   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键,则在窗体上输出的数值为【  】和【  】。

选项

答案65,97

解析 按下和松开一个ANSI键时发生KeyPress事件,其语法为:
   Private Sub objeet_KeyPress([index As Integer,]keyascii As Integer)
   KeyPreview属性,返回或设置一个值,以决定是否在控件的键盘事件之前激活窗体的键盘事件。键盘事件为: KeyDown、KeyUp和KeyPress。当KeyPreview的值为True时窗体先接收键盘事件,然后是活动控件接收事件;为False时(缺省值)活动控件接收键盘事件,而窗体不接收。
   KeyPress将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。而KeyDown和KeyUp用两种参数解释每个字符的大写形式和小写形式:KeyCode——显示物理的键(将A和a作为同一个键返回)和Shift——指Shift+Key键的状态而且返回A或a其中之一。
   本题中,由于Form的KeyPreview属性为True,窗体能够接受到键盘事件。当A键按下时,KeyDown事件产生,此时KeyCode=65。A键松开后,KeyPress事件产生,此时KeyAscii=97。
转载请注明原文地址:https://jikaoti.com/ti/oNq0FFFM
0

最新回复(0)