0

我的问题是如何显示从 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()
4

1 回答 1

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.

现在,每次发送滴答事件都会触发。在这种情况下,您想减少循环,以便倒计时。 iCountDown -= 1并设置您的标签文本。只需确保当倒计时达到 0 时停止计时器If iCountDown <= 0 then Timer1.Stop

请注意,计时器在 UI 线程上运行,因此如果您的 UI 线程中没有任何抽水(空闲时间),Tick 甚至不会按预期触发。

希望这可以帮助您了解计时器的情况。

于 2013-10-21T15:09:47.140 回答