我通过谷歌搜索看到了它的变化,但我有一个带有计时器控件的窗体,三个文本框(小时,分钟,秒),根据点击的按钮,我想从2小时倒数。因此,单击textbox1(小时)后将为1,textBox2(分钟)将为59,textBox3(秒)将为59,并且它们将继续倒计时直到所有读取为0。
有没有人有一些代码要分享?
非常感谢。
答案 0 :(得分:4)
您可以使用TimeSpan类。初始化为2小时。如果启动Timer,则获取当前计时器。然后使用Timer对象每秒刷新一次显示。只需获取当前时间。剩下的时间是:
TimeSpan剩余= twoHoursTimespan - (CurrentTime - StartTime);
答案 1 :(得分:3)
从TimeSpan中提取组件。单击按钮后立即记录当前时间和日期,并将其存储在变量中。然后,您的计时器应该每秒计算自开始时间以来的持续时间。
IE:DateTime result = DateTime.Now.Subtract(StartingTime);
然后,使用生成的TimeSpan的部分来填充字段。
IE:int Hour = result.Hour; (或类似的东西)。
附录:不要每秒手动倒计时,因为这可能导致倒计时不准确。
答案 2 :(得分:0)
本教程非常清楚地说明了您要实现的目标。
http://www.dreamincode.net/forums/topic/57482-countdown-timer/
它为您提供了从任何给定时间倒计时的选项,而不仅仅是2小时。当然,如果这是你唯一需要的,你可以把它设置为2小时。
答案 3 :(得分:0)
这是一个Cope Project article and project,它位于你想要的附近。如果您的需求灵活,甚至可以直接满足您的需求。
答案 4 :(得分:0)
很抱歉,这可能不是确切的答案,但您需要使用时间跨度来实现此目的。
DateTime now = DateTime.Now;
// get the time elapsed since we started the test
// start date was set somewhere else before this code is called
TimeSpan span = now - _startDate;
// format the time left
String timeleft = span.Hours > 0 ? String.Format( "Time Left - {0}:{1:D2}:{2:D2}", span.Hours, span.Minutes, span.Seconds ) : String.Format( "Time Left - {0:D2}:{1:D2}", span.Minutes, span.Seconds );