如何在VB.NET中显示同一秒后的标签

时间:2015-06-25 15:57:13

标签: vb.net

我想知道如何在VB.NET中这样做。想象一下,我们有一个包含4个隐藏标签的表单。我想要做的是延迟一个接一个地展示它们。例如,当我运行我的应用程序时,首先显示第一个标签,5秒后显示第二个标签,然后另一个标签显示另一个标签,依此类推。我知道我应该使用计时器并编写我的代码,但我不知道如何。告诉我计时器代码。我可以做其余的事情。

2 个答案:

答案 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

如果您要显示的标签数量有限,并且您并不总是希望每个节目之间的时间间隔相同,那么这是一个简单的选项。