为什么毫秒不工作
本文关键字:工作 为什么 | 更新日期: 2023-09-27 18:04:38
我想在label9中显示一个计时器计数:Hours Minutes Seconds MillisecondsTimer1间隔设置为1000
我从timer1 tick事件中调用这个方法:
private void NewsUpdate()
{
newText = new List<string>();
counter += 1;
TimeSpan t = TimeSpan.FromSeconds(counter);
string time = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms",
t.Hours,
t.Minutes,
t.Seconds,
t.Milliseconds);
progressBar1.Value = counter;
label9.Text = time;
}
我看到秒在移动,但毫秒仍然在000,为什么毫秒不工作?
设置定时器的间隔时间为1
,并以毫秒为单位创建TimeSpan
对象。
更新代码如下
timer1.Interval = 1;
private void NewsUpdate()
{
counter += 1;
TimeSpan t = TimeSpan.FromMilliseconds(counter);
string time = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D4}ms",
t.Hours,
t.Minutes,
t.Seconds,
t.Milliseconds);
progressBar1.Value = Convert.ToInt32(counter / 1000);
label9.Text = time;
}
因为您直接从整秒数设置时间跨度。从整数秒数开始的任何时间间隔总是0毫秒。
您可能想要的是将您的时间范围设置为Date.Now(),或者记录计时器开始时的当前时间,并从每个计时器刻度的当前时间中减去该时间。