【问题标题】:How can I make a stopwatch (timer) start from 00:00:00 after stopping and starting it again?停止并再次启动后,如何使秒表(计时器)从 00:00:00 开始?
【发布时间】:2019-01-20 12:24:53
【问题描述】:

我正在制作一个秒表程序,但在让它停止和启动时遇到了一个小问题。

就是这种情况——我先按“StartButton”,然后再按“StopButton”,但在再次按“StartButton”后,它会从已经计数的时间开始计数。

定时器功能:

int i = 0;
private void timer1_Tick(object sender, EventArgs e)
{

    TimeSpan time = TimeSpan.FromSeconds(i);
    textBox1.Text = time.ToString(@"hh\:mm\:ss");
    i++;
}

停止按钮功能:

private void button4_Click(object sender, EventArgs e)
{
    button3.Visible = true;
    button4.Visible = false;
    timer1.Stop();
    timer1.Enabled = false;
    textBox1.Text = "00:00:00";
}

开始按钮功能:

 private void button3_Click(object sender, EventArgs e)
{
    button4.Visible = true;
    button3.Visible = false;
    timer1.Enabled = false;
    timer1.Start();
        textBox1.Text = "00:00:00";
}

我试图让“textBox1”写成“00:00:00”,但它根本不起作用。

(PS 我不擅长 C#)。

【问题讨论】:

  • 真正重要的是i,重新初始化为零
  • 谢谢,但我不明白反对意见,我只是不擅长编程和 C#。

标签: c# timer stopwatch


【解决方案1】:

我也会添加一个带有起始值的字段:

private DateTime _timeStart = DateTime.Now; 

启动/重启:

_timeStart = DateTime.Now; 
timer1.Start();

显示:

TimeSpan time = (DateTime.Now - _timeStart).TotalSeconds;
textBox1.Text ...

并且...如果您需要暂停计时器。

我也会添加并使用这些字段来处理暂停时间:

private DateTime _timePauseStart = DateTime.Now;
private TimeSpan _timeSpanPaused;

开始暂停:

timer1.Stop();
_timePauseStart = DateTime.Now;

结束暂停:

_timeSpanPaused += DateTime.Now - _timePauseStart;
timer1.Start();

显示:

TimeSpan time = (DateTime.Now - _timeStart - timeSpanPaused).TotalSeconds;
textBox1.Text ...

【讨论】:

  • 没有 timer1.reset 或 timer1.restart。
  • timer1.Stop();我 = 0; TimeSpan 时间 = TimeSpan.FromSeconds(i); textBox1.Text = time.ToString(@"dd\:hh\:mm\:ss");
【解决方案2】:

我只是理解你的问题。每次停止和启动时,计时器都会从 0 开始。

考虑使用Stopwatch 类。使用秒表,您始终可以从暂停的地方继续。

要重新启动秒表,请使用

sw.Reset();
sw.Start();

sw.Restart();

要从您离开的地方继续,请使用

timer1.Stop();
timer1.Start();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多