我正在使用WinForm的。我的表单中有一个标签,应该从0:20秒开始倒数。到0:00秒。我试图在这里做,但编译器给我一个错误。时间跨度减秒表倒计时
Error: Cannot convert from 'int' to 'System.TimeSpan'
为什么不能使用timespan.Subtract()?我怎么能从0:20秒到0:00秒?
private void timer1_Tick(object sender, EventArgs e)
{
TimeSpan timespan = TimeSpan.FromSeconds(20);
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Time_label.Text = timespan.Subtract(stopwatch.Elapsed.Seconds);
}
请注意,'stopwatch.Elapsed.Seconds'只是秒*组件*,因此它从0到59计数,然后再次回滚到0。你可能想要'stopwatch.Elapsed.TotalSeconds'继续计数59.除非你正在做一个公鸡来展示,否则我发现很少有人真正需要'Seconds'而不是'TotalSeconds'。 – Quantic
你不需要使用'StopWatch'。你只需要使用一个计时器,但是当你想启动计时器时,首先计算'EndTime'或'StopTime',然后启动计时器。在每个勾号中,您应该更新标签的文本,并检查您是否达到了结束时间,然后停止计时器并在标签上显示'00:00'。您可能会发现这篇文章有用:[显示时间已过](https://stackoverflow.com/questions/38420596/display-time-elapsed) - 我相信这是一个确切的副本。 –
你的事件不需要使用'TimeSpan',看看链接的帖子,并设置结束时间'endTime = DateTime.Now.AddSeconds(20);' –