我有一个按钮,我按下它并开始倒计时。 但是,如果我再次按下相同的按钮,计时器必须重置并进行另一次倒计时(我的程序定义了另一个时间,但现在这是无关紧要的。)
有没有什么方法可以在同一个button_click中重置? 也许检查按钮是否再次被点击,这样我可以重置定时器值?
我有这个计时器滴答
private int milliSecondsLeft = 0;
private int t = 0;
private bool timeSet = false;
private void timer2_Tick(object sender, EventArgs e)
{
string timeOp = dataGridView1.Rows[t].Cells[5].Value + "";
t++;
DateTime timeConvert;
DateTime dateTime = DateTime.Now;
if (!timeSet)
{
DateTime.TryParse(timeOp, out timeConvert);
milliSecondsLeft = (int)timeConvert.TimeOfDay.TotalMilliseconds;
timeSet = true;
timeSetNxt = false;
}
milliSecondsLeft = milliSecondsLeft - 1000;
if (milliSecondsLeft > 0)
{
var span = new TimeSpan(0, 0, 0, 0, milliSecondsLeft);
lblLeft.Text = span.ToString(@"hh\:mm\:ss");
}
else
{
timer2.Stop();
}
}
和这个button_click
每次按下我的按钮它都会t++;
,然后它会在我的数据网格上读取另一个时间值。这就是为什么它必须重置
int t = 1;
private void btn2_Click(object sender, EventArgs e)
{
timer2.Start();
lblLeft.Text = dataGridView1.Rows[t].Cells[5].Value.ToString();
string value = dataGridView1.Rows[t].Cells[5].Value.ToString();
lblLeft.Text = value.ToString();
t++;
}
答案 0 :(得分:1)
您可以使用Button的标记属性为您要创建的逻辑设置标记。 在按钮点击事件
if (btnExample.Tag==0)
{
btnExample.Tag=1;
//call startCountDown function
}
else
{
btnExample.Tag=0;
// call reset
}
答案 1 :(得分:1)
显示您的定时器代码。获得重置次数。请使用以下代码。
Nation
只需点击一下即可启动新的计时器。另外,丢弃最后一个。
您可以使用 int button_clicked = new int();
private void button1_Click(object sender, EventArgs e)
{
// How many times you have Reset
button_clicked++;
// Your Timer Code
}
来了解计时器是否已启动,因此如果button_clicked
答案 2 :(得分:1)
我会检查计时器是否已启用
if (!timer2.Enabled) StartTimer2();
else ResetTimer2();