设有如下过程: Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) Print Chr(KeyCode) End Sub Private Su

admin2012-09-07  18

问题 设有如下过程:
    Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)
         Print Chr(KeyCode)
    End Sub
    Private Sub Form_KeyUp(KeyCode As Integer,Shift As Integer)
         Print Chr(KeyCode+2)
    End Sub
    若把窗体的KeyPreview属性设置为True,程序运行后,如果按“A”键,则输出结果
    为(    )。

选项 A、A         
  A
B、A
  B
C、A
  C
D、A
  D

答案C

解析 奉题考查窗体的键盘事件。当按下键盘上某个键时,触发KeyPress事件;按下键盘某个键过程中,触发事件KeyDown事件;当松开键盘某个键时,触发事件Keyup。KeyDown和Keyup事件返回的是键盘的直接状态(返回的是“键”),KeyCode参数是用户按下的那个键的扫描码,而KeyPress返回的是“字符”的ASCII码,两者不同。当窗体的KeyPreview设置为True时,如果焦点从控件上跳到窗体上,则该控件的键盘事件也会被触发。
    题中只有窗体的KeyDown和Keyup事件,因此当按下“A”键时,触发KeyDown事件执行“Print chr(Keycode)”语句,其中Chr函数的功能是将ASCII码转换成相应的字符,因此输出字母“A”:当松开“A”键时,触发Keyup事件执行“Print Chr(KeyCode+2)”语句,因此输出字母“C”。
转载请注明原文地址:https://jikaoti.com/ti/bGO0FFFM
0

最新回复(0)