如何使时间计数器从当前点开始继续向上/向下,而不是从开始?


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Extract
{
public partial class TimeCounter : Label
{
public bool CountUp { get; set; }
private Timer _timer;
private int _elapsedSeconds;
private TimeSpan ts = TimeSpan.FromSeconds(100);
public TimeCounter()
{
InitializeComponent();
StartCountDownTimer();
}
public void StartCountDownTimer()
{
_timer = new Timer
{
Interval = 1000,
Enabled = true
};
_timer.Tick += (sender, args) =>
{
if (CountUp == false)
{
ts = ts.Subtract(TimeSpan.FromSeconds(1));
this.Text = ts.ToString();
}
else
{
_elapsedSeconds++;
TimeSpan time = TimeSpan.FromSeconds(_elapsedSeconds);
this.Text = time.ToString(@"hh:mm:ss");
}
};
}
private void TimeCounter_Load(object sender, EventArgs e)
{
}
}
}

And in form1

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if(checkBox1.Checked)
{
timeCounter1.CountUp = true;
}
else
{
timeCounter1.CountUp = false;
}
}

当我改变form1中的CountUp标志时,它会改变时间计数器的向上/向下方向,但每次都重新开始。如果是向上计数,则从00:00:00开始计数如果是向下计数,则从1分40秒00:01:40开始计数

我怎样才能使当我改变标志时,它将从当前时间改变方向,而不是从开始?

如果时间为00:00:13(向上计数),我将标志改为向下计数,那么从00:00:13开始向下计数…00:00:12……同样的,如果它是向下计数,我将它改为向上计数,然后从当前时间开始继续向上。

你需要什么"用的?

只使用吗?

_timer.Tick += (sender, args) =>
{
if (CountUp)
{
ts = ts.Add(TimeSpan.FromSeconds(1));        
}
else
{
ts = ts.Subtract(TimeSpan.FromSeconds(1));            
}
this.Text = ts.ToString();
};

相关内容

  • 没有找到相关文章

最新更新