私は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);で終了時刻を設定してください。 –