VB菜鸟问题!!!

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:58:45
Private Sub Command1_Click()
Static n As Integer
s = 0
If Text1.Text = "111111" Then
Me.Hide: Form2.Show
Else
MsgBox ("56666")
s = s + 1
Text1.Text = ""
End If
If s = 3 Then
Print "ddd"
End If
End Sub
为什么输入3次错误而不会 print ddd

原因是因为虽然把s设置为static,但你每次触发Command1_Click时,,y都会执行s = 0,所以,永远不会到3的。你把s = 0这句话去掉就行了。另外可能是你打错了
Static n As Integer
应该是
Static s As Integer

Public s As Integer

Private Sub Command1_Click()
If Text1.Text = "1" Then
MsgBox "你直接登录下一个界面!"
Else
If s < 3 Then
MsgBox "密码第" & s & "次错误!"
s = s + 1
Else
MsgBox "您已经三次输错!现在关闭"
End
End If
End If
End Sub

Private Sub Form_Load()
s = 1
End Sub

主要是N是静态变量,应该用N来记数,
由于S不是静态变量,无论怎么样在按下按钮之后都被重新付值
所以应该用N来判断

哈 你看到s = 0 了没
如果说你按下三次 你个是顺序结构 那么是自动从上到下
是不是又执行了S=0
所以他永远都不会等于3
你可以把S到过程外定义 然后在Private Sub Form_Load() 那里写S=0 就可以了 或是把S=0直接去掉

m每次都从头记数,怎么能到3啊???