我的问题是如何显示正在运行的计时器,包括从SQL数据库导入的分钟和秒。我已经导入了它,但是如何在标签中显示计时器?
sqlq = "Select Duration from XYZ where ID = 20"
sda = New SqlDataAdapter(sqlq, conn)
sda.Fill(ds)
_timer = ds.Tables(0).Rows(0).Item("Duration")
Timer1.Interval = _timer * 60000
Timer1.Enabled = True
Timer1.Start()
答案 0 :(得分:1)
每次间隔到期时,Timer1_Tick事件都会触发。 IE,如果ds.Tables(0).Rows(0).Item("Duration")
= 2,并且您将间隔设置为_timer * 60000
,因为间隔以毫秒为单位,它将每2分钟触发一次。
这并不意味着接下来的2分钟就会运行,这意味着从现在起2分钟后,Timer1_Tick事件将会触发,而2分钟后它将再次触发,依此类推。
好像你试图每秒运行一次计时器,持续2分钟(在这种情况下)。您应该将间隔设置为1000(1秒)并在表单中设置一些变量Private iCountDown as int32
。将其设置为您希望它运行的秒数iCountDown = _timer * 60
。现在开始计时器Timer1.Start
。
现在,每次发送tick事件都会触发。在这种情况下,您希望减少循环,以便计数。 iCountDown -= 1
并设置标签文字。只需确保当倒计时到达0时您停止计时器If iCountDown <= 0 then Timer1.Stop
请注意,计时器在UI线程上运行,因此如果您的UI线程中没有任何抽水(空闲时间),则Tick甚至不会按预期启动。
希望能帮助您了解计时器发生的事情。