设工程中有2个窗体:Forml、Form2,Forml为启动窗体。Form2中有菜单,其结构如表。要求在程序运行时,在Forml的文本框Textl中输入口令并按回车键(回车键的ASCII码为13)后,隐藏Forml,显示Form2。若口令为“XSLNCER

admin2020-06-30  18

问题 设工程中有2个窗体:Forml、Form2,Forml为启动窗体。Form2中有菜单,其结构如表。要求在程序运行时,在Forml的文本框Textl中输入口令并按回车键(回车键的ASCII码为13)后,隐藏Forml,显示Form2。若口令为“XSLNCER”,所有菜单项都可见:否则看不到“成绩录入”菜单项。为此,某人在Forml窗体文件中编写如下程序:

    Private Sub Text1__KeyPress(KeyAscii As Integer)
    If KeyAscii=1 3 Then
    If T’eX 1.Text=”XSLNCER”Then
    Form2.input.Visible=True
    Else
    Form2.input.Visible=False
    End If
    End If
    Forml.Hide
    Forrn2.Show
  End Sub
程序运行时发现刚输入口令时就隐藏了Forml,显示了Form2,程序需要修改。下面修改方案中正确的是 (    )。

选项 A、把2个Form2.input.Visible中的“Form2”删去
B、把Form1中Text1文本框及相关程序放到Form2窗体中
C、把IfKeyAsii=13 Then改为If KeyAscii=“XSLNCER”Then
D、把Forml.Hide、Form2.Show两行移动到2个EndIf之间

答案D

解析 根据题干的描述,刚刚输入口令的第一个字符时就隐藏了Forml显示Form2,与预期的键入回车时才隐藏Forml显示Form2不符,可以判断是在进行KeyAscii条件判断时出了问题。观察代码可以看到,Forml.Hide和Form2.Show语句处于KeyAscii=13的If判断之外,这样无论键入的第一个字符是否是回车都将执行这两条语句,造成了题干描述的错误现象。解决方案也很简单,只要把这两条语句移到两个End If之间,令其受到KeyAscii=13的If判断即可。
转载请注明原文地址:https://kaotiyun.com/show/j9Hp777K
0

最新回复(0)