Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net net倒计时_.net_Vb.net_Timer - Fatal编程技术网

.net net倒计时

.net net倒计时,.net,vb.net,timer,.net,Vb.net,Timer,我正在尝试在我的应用程序中创建一个倒计时计时器。我已经知道倒计时的时间是4分钟。我有一个计时器,它每秒钟都在滴答作响。现在,如何更新我的文本框,使其以HHMMSS格式显示剩余时间 编辑:我遇到的问题是计算剩余时间。我应该用什么?时间戳?为计时器添加事件处理程序,让它计算剩余时间,格式化字符串并更新文本框 要跟踪时间并计算差异,可以使用Environment.TickCount-这是最简单的变体。在开始倒计时时保存时间戳,并在每次调用事件处理程序时获取该时间戳。为计时器添加事件处理程序,让它计算剩

我正在尝试在我的应用程序中创建一个倒计时计时器。我已经知道倒计时的时间是4分钟。我有一个
计时器
,它每秒钟都在滴答作响。现在,如何更新我的
文本框
,使其以
HHMMSS
格式显示剩余时间


编辑:我遇到的问题是计算剩余时间。我应该用什么?时间戳?

为计时器添加事件处理程序,让它计算剩余时间,格式化字符串并更新文本框


要跟踪时间并计算差异,可以使用Environment.TickCount-这是最简单的变体。在开始倒计时时保存时间戳,并在每次调用事件处理程序时获取该时间戳。

为计时器添加事件处理程序,让它计算剩余时间,格式化字符串并更新文本框


要跟踪时间并计算差异,可以使用Environment.TickCount-这是最简单的变体。在开始倒计时时保存时间戳,并在每次调用事件处理程序时获取它。

跟踪时间的最佳方法是使用DateTime.Now记录开始时间。然后,通过减去保存的值,可以随时看到差异

Dim diff = DateTime.Now - savedTime
Dim remaining = TimeSpan.FromMinutes(4) - diff
要获得所需的格式,只需将其作为字符串传递给.ToString函数

Dim readable = remaining.ToString("hh:mm:ss")

跟踪时间的最佳方法是使用DateTime.Now记录开始时间。然后,通过减去保存的值,可以随时看到差异

Dim diff = DateTime.Now - savedTime
Dim remaining = TimeSpan.FromMinutes(4) - diff
要获得所需的格式,只需将其作为字符串传递给.ToString函数

Dim readable = remaining.ToString("hh:mm:ss")

在开始倒计时之前,请使用以下命令记录当前时间

Dim endTime as DateTime = DateTime.Now.Add(TimeSpan.FromMinutes(4))
然后,当您的勾号事件发生时,您可以使用

Dim timeLeft as TimeSpan = endTime.Subtract(DateTime.Now)
您可以根据需要格式化timeLeft,可能使用Jared提到的.ToString(“hh:mm:ss”)


您可以阅读s和s上的文档,了解有关如何使用它们的更多信息。

在开始倒计时之前,请使用以下内容记录当前时间

Dim endTime as DateTime = DateTime.Now.Add(TimeSpan.FromMinutes(4))
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Interval = 500
    Timer1.Start()
End Sub
Dim stpw As New Stopwatch
Dim CountDownFrom As Integer = 4 * 60 'as seconds
Dim CountDown As New TimeSpan
Private Sub StartCountDown()
    CountDown = TimeSpan.FromSeconds(CountDownFrom)
    stpw.Stop() : stpw.Reset() : stpw.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Not stpw.IsRunning Then Exit Sub
    Dim TimeRemaining As TimeSpan = CountDown - stpw.Elapsed
    Label1.Text = TimeRemaining.Hours.ToString.PadLeft(2, "0"c) & ":" & _
                    TimeRemaining.Minutes.ToString.PadLeft(2, "0"c) & ":" & _
                    TimeRemaining.Seconds.ToString.PadLeft(2, "0"c)
    If TimeRemaining.TotalMilliseconds <= 0 Then stpw.Stop()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    StartCountDown()
End Sub
然后,当您的勾号事件发生时,您可以使用

Dim timeLeft as TimeSpan = endTime.Subtract(DateTime.Now)
您可以根据需要格式化timeLeft,可能使用Jared提到的.ToString(“hh:mm:ss”)

您可以阅读s和s上的文档以了解有关如何使用它们的详细信息。

私有子表单1\u Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Interval = 500
    Timer1.Start()
End Sub
Dim stpw As New Stopwatch
Dim CountDownFrom As Integer = 4 * 60 'as seconds
Dim CountDown As New TimeSpan
Private Sub StartCountDown()
    CountDown = TimeSpan.FromSeconds(CountDownFrom)
    stpw.Stop() : stpw.Reset() : stpw.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Not stpw.IsRunning Then Exit Sub
    Dim TimeRemaining As TimeSpan = CountDown - stpw.Elapsed
    Label1.Text = TimeRemaining.Hours.ToString.PadLeft(2, "0"c) & ":" & _
                    TimeRemaining.Minutes.ToString.PadLeft(2, "0"c) & ":" & _
                    TimeRemaining.Seconds.ToString.PadLeft(2, "0"c)
    If TimeRemaining.TotalMilliseconds <= 0 Then stpw.Stop()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    StartCountDown()
End Sub
计时器1.间隔=500 Timer1.Start() 端接头 调暗stpw作为新秒表 Dim倒计时从整数开始=4*60'秒 随着新的时间跨度而变暗倒计时 私有子StartCountDown() 倒计时=时间跨度从秒(倒计时从秒) stpw.Stop():stpw.Reset():stpw.Start() 端接头 私有子Timer1_Tick(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理Timer1.Tick 如果不是stpw.IsRunning,则退出Sub Dim TIME剩余时间为TimeSpan=倒计时-stpw.已过 Label1.Text=TimeRemaining.Hours.ToString.PadLeft(2,“0”c)和“:”和_ 剩余时间.Minutes.ToString.PadLeft(2,“0”c)和“:”和_ 剩余时间。秒。ToString.PadLeft(2,“0”c) 如果TimeRemaining.totalmillizes
Private子表单1_Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
计时器1.间隔=500
Timer1.Start()
端接头
调暗stpw作为新秒表
Dim倒计时从整数开始=4*60'秒
随着新的时间跨度而变暗倒计时
私有子StartCountDown()
倒计时=时间跨度从秒(倒计时从秒)
stpw.Stop():stpw.Reset():stpw.Start()
端接头
私有子Timer1_Tick(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理Timer1.Tick
如果不是stpw.IsRunning,则退出Sub
Dim TIME剩余时间为TimeSpan=倒计时-stpw.已过
Label1.Text=TimeRemaining.Hours.ToString.PadLeft(2,“0”c)和“:”和_
剩余时间.Minutes.ToString.PadLeft(2,“0”c)和“:”和_
剩余时间。秒。ToString.PadLeft(2,“0”c)
如果TimeRemaining.total毫秒