单选题 在窗体上画一个命令按钮和两个文本框,其名称分别为Command1、Text1和Text2,在属性窗口中把窗体的KeyPreview属性设置为True,然后编写如下程序:
Dim S1 As String, S2 As String
Private Sub Form_Load()
Text1.Text="":Text2.Text="":Text1.Enabled=False:Text2.Enabled=False
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
S2=S2 & Chr(KeyCode)
Print S2
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
S1=S1 & Chr(KeyAscii)
Print S1
End Sub
Private Sub Command1_Click()
Text1.Text=S1:Text2.Text=S2:S1="":S2=""
End Sub
程序运行后,先后按“a”、“b”、“c”键,然后单击命令按钮,在文本框Text1和Text2中显示的内容分别为______。
  • A.abe和ABC
  • B.空白
  • C.ABC和abc
  • D.出错
【正确答案】 A
【答案解析】[考点] 事件过程 [解析] 常见的键盘事件有:KeyDown、KeyUp和KeyPress。当用户按下并释放一个可打印的键盘字符时,KeyDown、KeyPress、KeyUp事件将依次发生,KeyPress事件过程中不能识别键盘的按下与释放。 KeyDown(KeyCode As Integer, Shift as Integer)和KeyUp(KeyCode As Integer Shift as Integer)有两个参数,其中,KeyCode参数是表示所按键的位置信息的代码(将A和a作为同一个键返回,而从大键盘上输出的“1”和右侧小键盘上输入的“1”将被视作不同的字符);Shift参数代表按键时<shift>、<Ctrl>、<Alt>键的状态。KeyPress(KeyAscii As Integer)事件中KeyAscii参数是所按键的ASCII的代码,该参数不显示键盘的物理状态,而只是传递一个字符。KeyPress将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。 本题Form_KeyDown事件过程的作用是:在按下键盘上的键后,将该键对应位置的字符(大写)连入字符串变量S2中。Form_KeyPress事件过程的作用是:在按下键盘上的键后,将该键键码对应的字符(区分大小写)连入字符串变量S1中。程序运行后,输入“abc”后单击命令按钮,S2="ABC",S1="abc"。