C#でストップウォッチをつくります。

まずは失敗作。

Timer.Tickイベントをつかって100分の1秒ごとに経過時間を表示しています。

このプログラムの欠陥は、ストップボタンを押して停止させたあと、スタートボタンを押して再度計測しようとすると00:00:00に戻ってしまうことです。スタートボタンを押したときに経過時間がクリアされてしまうのです。

ストップボタンが押されたときにこれまでの経過時間を保存しておく必要があります。

TimeSpan型フィールド変数 _timeSpanをつくりました。_timeSpan += DateTime.Now – startDT;とすることで、ストップボタンが押されたときにスタートボタンが押されてからの経過時間を取得して保存しています。

リセットボタンを追加しました。_timeSpanのデータをクリアしています。またスタートボタンを押したらストップボタンが押されるまではスタートボタンとリセットボタンを押せなくしました。