如何及时增加?

时间:2011-10-23 21:00:50

标签: c# winforms timer stopwatch

我正在创建一个秒表类型的应用程序。我用标签来显示时间。当应用程序启动时,标签初始化为'00:00:00',我希望每1秒增加一次。

我正在尝试使用计时器来完成这项工作。

5 个答案:

答案 0 :(得分:3)

在您的计时器中获取系统时间,因此您的计时器必须具有非常小的间隔,如200毫秒。要计算你的时间,只需计算当前时间 - 以秒为单位的startTIme。

答案 1 :(得分:1)

我的一个应用程序上有一个计时器。

private int _seconds;

public string TimeDisplay
{
    get
    {
        TimeSpan ts = new TimeSpan( 0, 0, _seconds );
        return string.Format("{0,2:00}:{1,2:00}:{2,2:00}", ts.Minutes, ts.Minutes, ts.Seconds);
    }
}

如果你绑定它,你所要做的就是让你的timer_tick甚至增加_seconds和NotifyPropertyChanged()。无论哪种方式,TimeDisplay都会得到你的结果。

答案 2 :(得分:1)

如果我找对你,它肯定会奏效。将初始标签Text设置为“00:00:00”。将计时器间隔设置为1000。

private void btnStartWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = true;
}

private void btnPauseWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = false;
}

int i = 1;
DateTime dt = new DateTime();
private void timer1_Tick(object sender, EventArgs e)
{
    label1.Text = dt.AddSeconds(i).ToString("HH:mm:ss");
    i++;
}

希望它有所帮助。

答案 3 :(得分:0)

我希望能理解。

private void Button1_Click(System.Object sender, System.EventArgs e)
{

      Timer1.Interval = 1000;
      Timer1.Start();
}
private void Timer1_Tick(System.Object sender, System.EventArgs e)
{
        this.Label1.Text = DateTime.Now.ToString("hh/mm/ss");

 }

此致

答案 4 :(得分:0)

您需要TimeSpan structure

类似的东西:

TimeSpan current = new TimeSpan(0);

// In your update loop:

current += TimeSpan.FromSeconds(1);