2010-07-29 68 views
2

我有一個時間行情事件,我想把它寫入格式(小時:分鐘:秒00:00:00)的標籤,它不打印0值!它顯示像:: 1時開始計數...該怎麼辦?解決了,謝謝所有回覆string.Format定時器?

private void timer_Tick(object sender, EventArgs e) 
     { 
      seconds++; 
      if(seconds == 59) 
      { 
       minutes++; 
       seconds = 0; 
      } 
      if(minutes == 59) 
      { 
       hours++; 
       minutes = 0; 
      } 

      this.label1.Text = string.Format("{0:##}:{1:##}:{2:##}", hours, minutes, seconds); 
     } 

回答

5

更好的方法是使用DateTime和TimeSpan對象。例如:

DataTime start = <set this somehow> 

void timer_Tick(...) 
{ 
    var elapsed = DateTime.Now - start; 

    label1.Text = string.Format("{0:HH:mm:ss}", elapsed); 
} 
3

嘗試一個思想實驗 - 設置秒和分鐘至58,並通過您的代碼走,看看會發生什麼......

2

最佳將會像其他人所說的那樣使用TimeSpan和DateTime。如果你想繼續使用當前的方法,但是,格式字符串更改爲:

string.Format("{0:00}:{1:00}:{2:00}", hours, minutes, seconds) 

00格式將導致始終打印兩位數,甚至是零。