单选题 设工程中有2个窗体:Form1、Form2,Form1为启动窗体。Form2中有菜单,其结构如表。要求在程序运行时,在Form1的文本框Text1中输入口令并按回车键(回车键的ASCII码为13)后,隐藏Form1,显示Form2。若口令为“Teacher”,所有菜单项都可见;否则看不到“成绩录入”菜单项。为此,某人在Form1窗体文件中编写如下程序:
Private Sub Text1 KeyPress(KeyAscii As Integer)
If KeyAscii=13 Then
If Tex1.Text="Teacher" Then
Form2.input.Visible=True
Else
Form2.input.Visible=False
End If
End If
Form1.Hide
Form2.Show
End Sub
{{B}}菜单结构{{/B}}
标题 名称1 级别
成绩管理 mark 1
成绩查询 Query 2
成绩录入 Input 2
程序运行时发现刚输入口令时就隐藏了Form1,显示了Form2,程序需要修改。下面修改方案中正确的是______。
  • A.把Form1中Text1文本框及相关程序放到Form2窗体中
  • B.把Form1.Hide、Form2.Show两行移动到2个End If之间
  • C.把If KeyAsii=13 Then改为If KeyAscii="Teacher" Then
  • D.把2个Form2.input.Visible中的Form2.删去
【正确答案】 B
【答案解析】[考点] 多重窗体、If选择结构和键盘事件 [解析] 根据题干的描述,刚刚输入口令的第一个字符时就隐藏了Form1显示Form2,与预期的键入回车时才隐藏Form1显示Form2不符,可以判断是在进行KeyAscii条件判断时出了问题。观察代码可以看到,Form1.Hide和Form2.Show语句处于KeyAscii=13的If判断之外,这样无论键入的第一个字符是否是回车都将执行这两条语句,造成了题干描述的错误现象。解决方案也很简单,只要把这两条语句移到两个End If之间,令其受到KeyAscii=13的If判断即可。