VB.NET 计时器在第一次计时后停止工作

VB.NET Timer stops working after it ticks the first time

我的代码中的计时器在第一次滴答后停止工作,我将其设置为在加载表单时每秒开始滴答:

Private Sub FormIdleTimeWaster_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        timerCPS.Interval = 1000
        timerCPS.Start()
End Sub

但在第一个滴答声之后,它停止工作:

Private Sub TimerCPS_Tick(sender As Object, e As EventArgs) Handles timerCPS.Tick
        lblCPS.Text = CStr(CPS)
        lblTotalHW.Text = CStr(CPS + HWTotal)
    End Sub

引用 timerCPS 的所有其他代码是

Me.timerCPS = New System.Windows.Forms.Timer(Me.components)
Friend WithEvents timerCPS As Timer

我的代码中没有其他地方引用 timerCPS,我不确定哪里出了问题

我已经复制了您在问题中给出的代码,并且运行良好。它每秒都在滴答作响。

我已将您的代码修改为:

Public Class FormIdleTimeWaster

    Private CPS As Integer = 1

    Private Sub timerCPS_Tick(sender As Object, e As EventArgs) Handles timerCPS.Tick
        CPS += 1
        lblCPS.Text = CStr(CPS)
    End Sub

    Private Sub FormIdleTimeWaster_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        timerCPS.Interval = 1000
        timerCPS.Start()
    End Sub
End Class

我可以清楚地看到标签中的值每刻增加一个。

timerCPS_Tick不需要调用timerCPS.Start()

如果您仍然有问题,那么还有一些您没有显示的其他代码。