Private Sub Form_Load()
   txtPas.PasswordChar = "*"
   txtPas.Text = ""
   txtNo = ""
End Sub
Private Sub txtNo_LostFocus()
    If Not IsNumeric(txtNo) Then
       MsgBox "学号有非数字字符错误"
        txtNo.Text = ""
        txtNo.SetFocus
     End If
     If IsNumeric(txtNo) Then
txtPas.SetFocus
     End If     
End Sub
Private Sub cmdOk_Click()
Dim I As Integer
If txtPas.Text <> "Wang" Then
  I = MsgBox("密码错误", 5 + vbExclamation, "输入密码")
  If I <> 4 Then
    End
  Else
    txtPas.Text = ""
    txtPas.SetFocus
  End If
End If
If txtPas.Text = "Wang" Then
  Text1.Text = "正确!"
End IfEnd Sub上面是编写选课系统登陆时学号和密码检验程序的代码,在cmdOk_Click()事件中有几行看不懂,特此提问:
1、I不是整型么,为什么要I=msgbox,不用“I=”不可以么?
2、I<>4就是说密码长度要4位数么?不是4位数的话就错误?

解决方案 »

  1.   

    1.I=...保存对话框点击按钮的值,即表示你点了哪个按钮。
    2.i<>4表示你点了"取消"按钮,而不是"重试"按钮
      

  2.   

    1应用I=msgbox 是这样的 msgbox函数在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮
    不用"I="的话MsgBox("密码错误", 5 + vbExclamation, "输入密码")也改成MsgBox "密码错误", 5 + vbExclamation, "输入密码"
    但是此时If I <> 4 Then条件没有意义
    2 是msgbox函数返回值的按钮的键值
    i=4 Retry 表示按钮重试的意思
      

  3.   

    I = MsgBox("密码错误", 5 + vbExclamation, "输入密码")
      If I <> 4 Then
        End
      Else
    ==================================================LZ理解错了I代表用户点击的msgbox是哪个按钮
    你也可以这么改写下
        If MsgBox("测试按钮", vbOKCancel, "测试") = vbOK Then
            MsgBox "您按的是确认键"
        Else
            MsgBox "您按的是其它键"
        End If