单选题 在窗体上画一个命令按钮和两个文本框,其名称分别为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)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
S1=S1&Chr(KeyAscii)
End Sub
Private Sub Command1_Click()
Text1.Text=S1
Text2.Text=S2
S1=""
S2=""
End Sub
程序运行后,先后按“a”、“b”、“c”键,然后单击命令按钮,在文本框Text1和Text2中显示的内容分别为______。
【正确答案】 A
【答案解析】[解析] 本题主要考查KeyCode和KeyAscii的区别。窗体的KeyPreview属性的意思是:返回/设置是否在激活对象上的控件的键盘事件之前,优先激活对象。keypreview属性值为true时,表示可以响应键盘事件。KeyCode码用于KeyUp,KeyDown事件中;KeyAscii用于KeyPress事件中。在KeyDown事件中,KeyCode返回的是按键码,大写字母‘A’和小写字母‘a’是公用的。而且KeyDown事件对字母默认是SHIFT状态的即大写。在KeyPress事件中,KeyAscii可以区分大小写,因此在输入小写字母a、b、c时,文本框Text1中显示的是abc。