我已经像这样实例化了一个计时器:
System.Timers.Timer seconds = new System.Timers.Timer();
seconds.Elapsed += new ElapsedEventHandler(seconds_Tick);
seconds.Interval = 1;
seconds.Enabled = true; //start timer
我已经像这样创建了 tick 事件:
private void seconds_Tick(object sender, EventArgs e)//source
{
time++;
}//end clock_Tick()
time 是在代码中声明的整型变量。
我尝试像这样显示结果(在一个方法中):
txtProcessTime.Text = TimeSpan.FromSeconds(time).ToString();
这在计时器运行超过一个小时之前效果很好,所以我尝试了:
txtProcessTime.Text = TimeSpan.FromHours(time).ToString();
这显示了一个更不寻常/意外的结果。
我尝试了其他几个,但我想我用错了部分..
我想编写一个计时器,考虑到毫秒、秒和小时,并将结果显示在文本框中。你能帮忙吗?
计时器以 00:00:00 格式显示
TimeSpan.FromHours
问题显示的内容大致如下:7070:xx:xx(我不记得 x 的值是什么)。
TimeSpan.FromSeconds
程序运行超过一个小时后显示:2:xx:xx(我不记得 x 的值是什么)。
格式显示为 mm:ss:milliseconds - 是否在 60 分钟后将分钟转换为单个数字?
最佳答案
这里显然有问题:Interval
在 milliseconds 中指定,但您将其设置为 1
。然后,您使用 FromSeconds
创建 TimeSpan
。
因此,如果您想要每秒发生一个事件,请将其设置为:
seconds.Interval = 1000;
如果你仍然想要每毫秒一次,那么改变你的TimeSpan
:
txtProcessTime.Text = TimeSpan.FromMilliSeconds(time).ToString()
关于c# - 显示计时器结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288691/