如何在C#中制作只显示秒和毫秒的秒表?

时间:2016-09-15 19:33:32

标签: c# winforms timer

所以我想创建一个执行此操作的计时器:每次单击按钮时都会发生这种情况:

  

0.052

     

0.521

     

1.621

     

2.151

     

...

但不是这样的话:

  

0.015

     

0.032

     

0.112

     

0.252

     

...

这种情况正在发生: picture

这段代码不正确,我等了很长时间,直到有一段时间......

int sec = 0, ms = 1;
private void button1_Click(object sender, EventArgs e)
{
    timer1.Start();
    listBox1.Items.Add(label1.Text);
    timer1.Interval = 1;

}

private void timer1_Tick(object sender, EventArgs e)
{
    ms++;
    if (ms >= 1000)
    {
        sec++;
        ms = 0;

    }
    label1.Text = String.Format("{0:0}.{1:000}", sec, ms);
}

1 个答案:

答案 0 :(得分:4)

您应该使用.Net框架的System.Diagnostics名称空间中的Stopwatch对象。像这样:

System.Diagnostics.Stopwatch sw = new Stopwatch();

public void button1_Click()
{
    sw.Start;  // start the stopwatch
    // do work
    ...

    sw.Stop;  // stop the stopwatch

    // display stopwatch contents
    label1.Text = string.Format({0}, sw.Elapsed);
}

如果您希望仅将总时间视为总秒数和毫秒数(无分钟或小时数),则可以将最后一行更改为:

label1.Text = string.Format({0}, sw.ElapsedMilliseconds / 1000.0)