0

我正在用 Visual Basics 6.0 设计一个登录页面。我必须包括一个计数器,以便在三次尝试失败后页面将自行关闭。我在命令按钮中编写了以下代码。虽然没有错误,但计数器不工作。这是代码:

Private Sub Command1_Click()
Dim count As Integer
count = 0

If Form1.Text1 = "admin" And Form1.Text2 = "admin" Then
MsgBox "Login Succesfull", vbOKOnly + vbInformation, "Welcome"
Else
    count = count + 1
    If count = 3 Then
      End
    Else
        MsgBox "Login Unsuccesfull", vbOKOnly + vbCritical, "Try Again"
        Form1.Text1 = ""
        Form1.Text2 = ""
        Form1.Text1.SetFocus
    End If
End If
End Sub
4

2 回答 2

2

只需将 Dim 更改为 Static,以便在调用中保持其值。并摆脱将其设置为零的行:

Private Sub Command1_Click()
    Static count As Integer

    If Form1.Text1 = "admin" And Form1.Text2 = "admin" Then
        MsgBox "Login Succesfull", vbOKOnly + vbInformation, "Welcome"
    Else
        count = count + 1
        If count = 3 Then
          End
        Else
            MsgBox "Login Unsuccesfull", vbOKOnly + vbCritical, "Try Again"
            Form1.Text1 = ""
            Form1.Text2 = ""
            Form1.Text1.SetFocus
        End If
    End If
End Sub
于 2019-03-07T22:04:19.077 回答
1

每次单击 Command1 时,您将计数设置为 0。您需要count在该子之外声明并在其他地方将其初始化为 0。

Private count As Integer

Private Sub Command1_Click()    
    If Form1.Text1 = "admin" And Form1.Text2 = "admin" Then
        MsgBox "Login Succesfull", vbOKOnly + vbInformation, "Welcome"
    Else
        count = count + 1

        If count = 3 Then
            End
        Else
            MsgBox "Login Unsuccesfull", vbOKOnly + vbCritical, "Try Again"
            Form1.Text1 = ""
            Form1.Text2 = ""
            Form1.Text1.SetFocus
        End If
    End If
End Sub
于 2019-03-07T21:59:02.630 回答