我想知道如何在VB.NET中这样做。想象一下,我们有一个包含4个隐藏标签的表单。我想要做的是延迟一个接一个地展示它们。例如,当我运行我的应用程序时,首先显示第一个标签,5秒后显示第二个标签,然后另一个标签显示另一个标签,依此类推。我知道我应该使用计时器并编写我的代码,但我不知道如何。告诉我计时器代码。我可以做其余的事情。
答案 0 :(得分:1)
假设WinForms?可以采取的一种方式......
Public Class Form1
Private LabelsEnumerator As IEnumerator
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim Labels() As Label = {Label1, Label2, Label3, Label4}
For Each lbl As Label In Labels
lbl.Hide()
Next
LabelsEnumerator = Labels.GetEnumerator
Timer1.Interval = TimeSpan.FromSeconds(5).TotalMilliseconds
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If Not IsNothing(LabelsEnumerator) Then
If LabelsEnumerator.MoveNext Then
LabelsEnumerator.Current.Show()
Else
Timer1.Stop()
End If
End If
End Sub
End Class
答案 1 :(得分:0)
使用秒表怎么样?
创建一个Timer1并设置为100ms tick。然后声明以下
Private stopwatch As New Stopwatch
然后在表单加载上有:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Timer1.Start()
Me.stopwatch.Start()
End Sub
然后为Timer1打勾事件:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If (Me.stopwatch.Elapsed.Seconds >= 5) AndAlso (Me.stopwatch.Elapsed.Seconds <= 6) Then
If Label1.Visible = False Then
Label1.Visible = True
End If
End If
If (Me.stopwatch.Elapsed.Seconds >= 10) AndAlso (Me.stopwatch.Elapsed.Seconds <= 11) Then
If Label2.Visible = False Then
Label2.Visible = True
End If
End If
End Sub
如果您要显示的标签数量有限,并且您并不总是希望每个节目之间的时间间隔相同,那么这是一个简单的选项。