我在做秒表。如果我选择开始按钮,计时器运行正常。但是当我再次使用以下代码按下按钮时。然后计时器从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";
}
}
答案 0 :(得分: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();
答案 1 :(得分:-1)
你必须申报调度时间,在你想暂停的时间运行计时器然后开始第一次添加调度程序计时器值,它将从暂停时间开始。