VB6 ProgressBar不工作?
插入了我的进度条,但未按预期工作。当我登录时,它可以工作,但不会自动加载第二个表单 这是我的进度/计时器代码VB6 ProgressBar不工作?,vb6,Vb6,插入了我的进度条,但未按预期工作。当我登录时,它可以工作,但不会自动加载第二个表单 这是我的进度/计时器代码 Private Sub Timer1_Timer() If ProgressBar1.Value = 100 Then ProgressBar1.Value = 0 Else ProgressBar1.Value = Val(ProgressBar1.Value) + Val(20) End If Label3.Caption = ProgressBar1.
Private Sub Timer1_Timer()
If ProgressBar1.Value = 100 Then
ProgressBar1.Value = 0
Else
ProgressBar1.Value = Val(ProgressBar1.Value) + Val(20)
End If
Label3.Caption = ProgressBar1.Value
标签,用于检测100,变量prg用于保持
Private Sub Label3_Change()
If (Label3.Caption = 100) Then
prg = 1
Timer1.Interval = 0
End If
End Sub
登录按钮
Private Sub cmdSign_Click()
currentTime = TimeValue(Now)
strCurrdate = Format(Date, "mmm d, YYYY")
rx.Open "Select * from login where username ='" & Text1 & "' and password='" & Text2 & "'", db, 3, 3
If (counter = 3) And (rx.EOF = True) Then
MsgBox "You guessed too many times! Intruder alert!"
End
Else
If rx.EOF = True Then
MsgBox "Invalid Username or Password"
counter = counter + 1
Text1 = ""
Text2 = ""
Else
user1 = Text1.Text
logTime = currentTime
rxd.Open "Select * from logHistory", db, 3, 3
With rxd
.AddNew
.Fields("username") = user1
.Fields("TimeDate") = strCurrdate
.Fields("TimeIn") = logTime
.Update
End With
Set rxd = Nothing
'problem might be here
ProgressBar1.Visible = True
Timer1.Interval = 100
Label3.Visible = True
Timer1.Enabled = True
If prg = 1 Then
MsgBox "Welcome " + Text1 + " to SPARTAN!"
mainmenu.Show
End If
End If
End If
Set rx = Nothing
End Sub
有什么帮助吗?一旦计时器启动,它将与代码的其余部分异步运行。按照您对登录按钮进行编码的方式,您希望计时器将progressbar从0移动到100,将(我假设)模块作用域变量prg设置为1,然后继续。实际上,您的代码启用计时器并继续。当它到达
时,如果prg=1,则
语句prg仍然是它初始化的位置。解决此问题的一种方法是检查计时器事件中的prg变量
Private Sub Timer1_Timer()
If ProgressBar1.Value = 100 Then
Timer1.Enabled = False ' don't fire the timer event again
ProgressBar1.Value = 0
MsgBox "Welcome " & Text1 & " to SPARTAN!"
mainmenu.Show
Else
ProgressBar1.Value = Val(ProgressBar1.Value) + Val(20)
End If
Label3.Caption = ProgressBar1.Value
End Sub
我还将字符串连接+更改为&。加号“+”可以工作,但仅在3之后的VB版本中包含,用于向后兼容性,并且将其用于算术以外的其他用途被认为是不好的形式。在VB版本4及更高版本中,应使用符号“&”进行串联 我计划切换到vb.net?有即时的代码转换吗?说真的,别理那些巨魔。这就是解决办法!现在很好用。向我的模块声明prg并将其放入计时器事件中。