0

私はストップウォッチに取り組んでいます。スタートボタンを選択すると、タイマーは正常に動作しています。しかし、次のコードでボタンをもう一度押すと。その後、タイマーは 00:00:00 から始まります。タイマーを一時停止したいのですが、それを押すと、開始時間からではなく、一時停止した時間から再び開始する必要があります。このタスクを行う方法は? その他のアイデアも受け付けます。

private void Timer_Tick(object sender, EventArgs e)
    {
      TimeSpan runTime = TimeSpan.FromMilliseconds(System.Environment.TickCount - _startTime);
      timeLabel.Text = runTime.ToString(@"hh\:mm\:ss");
    }

     private void StartButton_Click(object sender, RoutedEventArgs e)
            {
              if (_timer.IsEnabled)
              {
                _watcher.Stop();
                _timer.Stop();
                StartButton.Content = "Start";
              }
              else
              {
                _watcher.Start();
                _timer.Start();
                _startTime = System.Environment.TickCount;
                StartButton.Content = "Stop";
              }
            }
4

2 に答える 2

0

停止ボタンをクリックしたときにタイマー時間を取得し、開始ボタンをクリックしたときにコードを変更するだけです。

開始ボタン : _refreshTimeTimer が null でないかどうかを確認する

if(_refreshTimeTimer != null){
      Timer t = new timer(_refreshTimeTimer );
      // Start new timer
      _refreshTimeTimer = null;
}else{
      if (_timer.IsEnabled)
          {
            _watcher.Stop();
            _timer.Stop();
            StartButton.Content = "Start";
          }
          else
          {
            _watcher.Start();
            _timer.Start();
            _startTime = System.Environment.TickCount;
            StartButton.Content = "Stop";
          }
}

停止ボタン :

_refreshTimeTimer = _timer.getTime();
于 2013-08-29T13:00:16.230 に答える