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 是否不为空

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 回答
-1

您必须声明调度程序时间,在您想暂停的时间运行计时器,然后开始您的第一次添加调度程序计时器值,它将从暂停时间之前开始。

于 2013-08-29T13:02:09.297 回答