private void btnReset_Click(object sender, EventArgs e)
{
watch.Reset();
TimeSpan ctimeSpan = new TimeSpan(0, trackBarHours.Value, trackBarMinutes.Value, trackBarSeconds.Value, 0);
diff = 0;
previousTicks = 0;
ticksDisplayed = ctimeSpan.Ticks;
trackBarHours.Value = 0;
trackBarMinutes.Value = 0;
trackBarSeconds.Value = 0;
richTextBox1.Text = "00:00:00.000";
}
问题出在按钮重置点击事件中:
WHERE
在单击“开始”按钮然后单击“重置”按钮后计时器仍在运行时,它可以正常工作,将重置计时器,并且计时器将从00:00:00.000开始计数
但是在单击“开始”按钮然后单击“重置”按钮之前更改轨迹条的值时,它不会将其重置为00:00:00.000,如果我单击“开始”,它将从上次更改开始即使我先单击了“重置”按钮,也使用了轨迹栏。
答案 0 :(得分:1)
这里的问题出在btnReset_Click
事件中。您正在执行以下操作:
TimeSpan ctimeSpan = new TimeSpan(0, trackBarHours.Value, trackBarMinutes.Value, trackBarSeconds.Value, 0);
ticksDisplayed = ctimeSpan.Ticks;
因此,ctimeSpan
将采用当前的trackBarHours.Value
,trackBarMinutes.Value
和trackBarSeconds.Value
并将其设置为ticksDisplayed
,并将用于下一次计算。如果要将时间完全重置为“ 00:00:00.000”,则必须将上面的代码重写为:
ticksDisplayed = 0;