我只是想为一个小小的体育记分牌制作一个基本的mm:ss计时器。
我目前有
int i = 0;
private void matchTimer_Tick(object sender, EventArgs e)
{
i++;
timeDisplay.Text = i.ToString("00:00");
}
但这失败了,因为它没有考虑分钟数,所以一旦时间达到60,它就会继续
00:60
00:61
00:62
...
但我希望它是
01:00
01:01
01:02
...
然后在80分钟停止
答案 0 :(得分:9)
你遇到的问题比你想象的要多。您目前正依赖于计时器每秒准确一次。请勿这样做 - 而是使用System.Diagnostics.Stopwatch
来衡量已用时间,然后通过格式化Stopwatch.Elapsed
的值来更新显示:
timeDisplay.Text = stopwatch.Elapsed.ToString("mm':'ss");
(有关详细信息,请参阅Custom TimeSpan format strings documentation。)
答案 1 :(得分:1)
Timespan就是为此而制造的。
timeDisplay.Text = new TimeSpan(0, 0, i).ToString("mm\\:ss")
答案 2 :(得分:0)