【问题标题】:Animation with Timer in Visual Basic?Visual Basic 中带有计时器的动画?
【发布时间】:2015-09-04 17:16:54
【问题描述】:

我正在尝试使用计时器在单击按钮时创建动画。这是我的代码:

Private Sub Animate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Animate.Click
        Timer.Enabled = True
End Sub
Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
    Dim m As Integer = 0
    m = m + 1

    Select Case m
        Case 1
            Me.Arrow4.Visible = True
            Me.Arrow5.Visible = True
            Me.Arrow6.Visible = True
        Case 2
            Me.Arrow1.Visible = True
            Me.Label1.Visible = True
            Me.Arrow4.Visible = False
            Me.Arrow5.Visible = False
            Me.Arrow6.Visible = False
        Case 3
            Me.Arrow2.Visible = True
            Me.Label2.Visible = True
            Me.Arrow1.Visible = False
            Me.Label1.Visible = False
        Case 4
            Me.Arrow3.Visible = True
            Me.Label3.Visible = True
            Me.Arrow2.Visible = False
            Me.Label2.Visible = False
    End Select
End Sub

显示第一个案例,但不显示其余部分。我将计时器的间隔设置为 1。

谢谢!

【问题讨论】:

  • 在每个计时器滴答声中,您将 m 设置为 0,然后加 1。当您执行 Select Case 时,它将始终为 1。相反,声明m Timer_Tick Sub。 Private m As Integer,并在 Animate_Click Sub 中设置为 0。

标签: vb.net animation timer basic


【解决方案1】:

其余情况将永远不会显示,因为您总是在计时器方法的范围内将m 实例化为 0。当 case 语句被命中时,m 将始终为 1。如果要保留该值,则需要将 m 移到类级别的计时器范围之外。只是不要忘记在遇到最后一个案例时将 m 设置回 0。例如

...

Case 4
   Me.Arrow3.Visible = True
   Me.Label3.Visible = True
   Me.Arrow2.Visible = False
   Me.Label2.Visible = False
   m = 0     

...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-19
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多