我正在使用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);' –