当计时器和秒表未运行时,如何设置“重置”按钮以重置所有内容?

时间:2018-10-01 02:25:35

标签: c# winforms

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,如果我单击“开始”,它将从上次更改开始即使我先单击了“重置”按钮,也使用了轨迹栏。

1 个答案:

答案 0 :(得分:1)

这里的问题出在btnReset_Click事件中。您正在执行以下操作:

            TimeSpan ctimeSpan = new TimeSpan(0, trackBarHours.Value, trackBarMinutes.Value, trackBarSeconds.Value, 0);
            ticksDisplayed = ctimeSpan.Ticks;

因此,ctimeSpan将采用当前的trackBarHours.ValuetrackBarMinutes.ValuetrackBarSeconds.Value并将其设置为ticksDisplayed,并将用于下一次计算。如果要将时间完全重置为“ 00:00:00.000”,则必须将上面的代码重写为:

            ticksDisplayed = 0;