正如我的标题所提到的,我需要帮助来解决这个问题。只是一些额外的信息,我不打算使用任何命令按钮。我只想完全依赖计时器。我还希望标签停止'闪烁'并在20秒后可见。我提供了我的代码。我当然知道我的编码存在问题,因为我是VB新手并且还在学习。希望这里的任何人都能提供帮助。非常感谢。(顺便说一句,请原谅我,如果我在创建线程时犯了任何错误,请告诉我,因为我是新用户。)
Private Sub tmrBlink_Timer()
Dim i%
i = i + 1
Do
lblBlink1Sec.Visible = Not lblBlink1Sec.Visible
Do
tmrBlink.Interval = 2000
lblBlink2Sec.Visible = Not lblBlink2Sec.Visible
Loop Until i <= 10
Do
tmrBlink.Interval = 5000
lblBlink5Sec.Visible = Not lblBlink5Sec.Visible
Loop Until i <= 4
Loop Until i <= 20
End Sub
答案 0 :(得分:1)
嗯,我希望你看一下以下的代码。
Private Sub Timer1_Timer()
Static a As Integer 'A counter which will not be reinitialized
If a Mod 2 = 0 Then 'Check whether the value of the counter is odd or even?
Label1.Visible = True
Else: Label1.Visible = False
End If
a = a + 1 'Increment the counter
If a = 20 Then
Timer1.Enabled = False 'code to stop your blikning after 20 seconds
label1.visible=false
end if
End Sub
每个计时器间隔都有一个变量a
。在每个定时器间隔之后,它将递增并将在奇数和偶数值之间切换。
答案 1 :(得分:0)
感谢Thomas,Jac和Anish的建议和反馈。只是我的回答是中途回答。也许我的问题不够清楚。我需要制作3个标签&#39;闪烁&#39;分别在1秒,2秒和5秒停止&#39;但在20秒后可见。
If a Mod 2 = 0 Then 'Check whether the value of the counter is odd or even?
Label1.Visible = True
Label2.Visible = Not Label2.Visible
Label5.visible = True
Elseif a Mod 5 = 0 Then
Label1.Visible = True
Label2.Visible = True
Label5.Visible = Not Label5.Visible
Else
Label1.Visible = Not Label1.Visible
Label2.Visible = True
Label5.Visible = True
End If
a = a + 1 'Increment the counter
If a = 20 Then
Timer1.Enabled = False 'code to stop your blinking after 20 seconds
label1.Visible = True
Label2.Visible = True
Label5.Visible = True
End if
End Sub
我对代码进行了一些修改,并使用label1,2,5来表示我需要它的时间“闪烁”。请给我一些关于编码的反馈。非常感谢你。 :)