Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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 正在重置TimeSpan.FromMinutes()_.net_Vb.net - Fatal编程技术网

.net 正在重置TimeSpan.FromMinutes()

.net 正在重置TimeSpan.FromMinutes(),.net,vb.net,.net,Vb.net,我试着用秒表和时间跨度 声明: Dim swTimer As New Stopwatch Dim tsCD As TimeSpan tsCD = TimeSpan.FromMinutes(2) 我已经成功地在我的计时器(tmrCountingDown)上创建了一个“.Tick”事件,如下所示: Private Sub tmrCountingDown_Tick(sender As Object, e As EventArgs) Handles tmrCountingDown.Tick

我试着用秒表和时间跨度

声明:

Dim swTimer As New Stopwatch
Dim tsCD As TimeSpan
tsCD = TimeSpan.FromMinutes(2)

我已经成功地在我的计时器(tmrCountingDown)上创建了一个“.Tick”事件,如下所示:

Private Sub tmrCountingDown_Tick(sender As Object, e As EventArgs) Handles tmrCountingDown.Tick
    Dim SamplesTS As TimeSpan = tsCD - swTimer.Elapsed
    btnDisplay.Text = String.Format("{0}{1}:{2:00}", SamplesTS.Hours, SamplesTS.Minutes, SamplesTS.Seconds)
End Sub
这使我能够成功地倒计时,并在我的按钮“btnDisplay”上显示分钟和秒数。

附带问题:当前该行代码显示00:00格式。有没有办法将此更改为0:00?其中第一组为分钟(一位数),第二组为秒(两位数?)


现在是我面临的主要问题。当我点击按钮时,它应该将.FromMinutes(2)更改为.FromMinutes(2.5),并刷新倒计时,同时不重置秒表(我需要保持经过的时间)如下所示:

Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
    Counter += 1 'Just an integer counter that I have
    tsCD = TimeSpan.FromMinutes(2.5)
End Sub
我第一次单击btnDisplay时,它没有执行它应该执行的操作:重置整个倒计时并从2:30开始。相反,它似乎只增加了30秒。当我第二次点击它时,它甚至什么都不做。

问题:如何在不重置秒表或计时器的情况下,将每个按钮的时间间隔倒计时刷新到2.5秒?




任何帮助都将不胜感激

这样想:

  • 您有一个不想更改的“时间已过”
  • 您希望重置“剩余时间”,使其为2.5分钟
  • 您当前正在使用“总时间-已用时间”公式计算剩余时间
如果您将所有这些组合在一起,这意味着当您按下按钮时,您希望将“总时间”更改为“当前已用时间+2.5分钟”。换言之:

tsCD = swTimer.Elapsed + TimeSpan.FromMinutes(2.5)
作为一个提示,我鼓励您使用真正清晰、描述性的名称——最好不要使用类型指定前缀,除非它们真的有用(我不认为它们在这里)。如果您给了
TimeSpan
名称
totalCountdownTime
或类似名称,我怀疑您已经解决了这个问题。当然,当名称不能传达所有信息时,可以在XML注释中添加更多细节:)

这样想:

  • 您有一个不想更改的“时间已过”
  • 您希望重置“剩余时间”,使其为2.5分钟
  • 您当前正在使用“总时间-已用时间”公式计算剩余时间
如果您将所有这些组合在一起,这意味着当您按下按钮时,您希望将“总时间”更改为“当前已用时间+2.5分钟”。换言之:

tsCD = swTimer.Elapsed + TimeSpan.FromMinutes(2.5)

作为一个提示,我鼓励您使用真正清晰、描述性的名称——最好不要使用类型指定前缀,除非它们真的有用(我不认为它们在这里)。如果您给了
TimeSpan
名称
totalCountdownTime
或类似名称,我怀疑您已经解决了这个问题。当然,当名称不能传达所有信息时,您可以在XML注释中添加更多细节:)

您当前的格式有点令人困惑——无论是“1小时0分钟”还是“10分钟”都表示为“10:00”。你有没有理由不使用另一个冒号?实际上,我建议将格式问题作为一个完全独立的问题来提问——当每篇文章都是一个单独的、明确指定的问题时,堆栈溢出效果最好。当然,它会增加30秒——您可以将tsCD从2分钟更改为2.5分钟,缩短30秒。战后不再有变化(2.5保持2.5)。你真的应该重新设置秒表。你可以在某个地方节省花费的时间。@JonSkeet嘿-我实际上试着用谷歌搜索了一下,但没有找到答案。我将以另一个问题的形式发布格式问题:)谢谢!或者使用一个单独的计数器,每次都将其重置为一个合适的值。@Jefferson好吧,我遇到的问题是,我有另一个按钮来显示经过的时间,我需要它保持不间断,我只是不确定我将如何做到这一点:(你当前的格式有点让人困惑——“1小时和0分钟”和“10分钟”表示为“10:00”"。有什么理由不使用另一个冒号来澄清问题吗?实际上,我建议将格式问题作为一个完全独立的问题来提问-当每篇文章都是一个单独的、明确指定的问题时,堆栈溢出效果最好。当然,它会增加30秒-您将tsCD从2分钟更改为2.5分钟,更改时间为30秒。战后没有任何更改更多(2.5保持为2.5)。你真的应该重置秒表。你可以在某个地方节省这一点所用的时间。@JonSkeet嘿-我实际上试着用谷歌搜索一下,但没有找到答案。我将把格式问题作为另一个问题发布:)谢谢!或者使用一个单独的计数器,每次都将其重置为一个合适的值。@Jefferson好吧,我遇到的问题是,我有另一个按钮显示经过的时间,我需要它保持不间断,我只是不确定如何才能做到这一点:(@jasonmills有两个人对时间了如指掌,一个叫约翰·斯基特,另一个是他的徒弟,他叫医生。@jasonmills有两个人对时间了如指掌,一个叫约翰·斯基特,另一个是他的徒弟,他叫医生。