2016-04-27 40 views
1

我使用的代碼如何不斷更新當前時間的標籤?

int pp = DateTime.Now.Hour; 

以下行,它是確定。我寫

label1.text=pp.tostring(); 

覈查和它的作品,但如果我打開我的形式在19:59(例如)在LABEL1出現19並在一分鐘後,當時鍾08:00,在label1的值沒有變化,仍然出現19,而不是20

之後,如果我關閉表單並重新打開它,label1中的數字是20

如何在datetime.now.hour中實時修改表單運行時的值? 謝謝

+3

一個帶滴答事件的計時器? – LarsTech

+0

你需要一個計時器。檢查定時器控件。 –

+0

使用Timer並在其'Tick'處理程序中更新您的UI(前提是這是一個WinForms問題)。或者在WPF或任何你使用的UI庫中做相同的事情。 – adv12

回答

3

由於您使用的是「形式」的術語,我會認爲Windows窗體,而最簡單的方法將被添加Timer組件,設置一個合理的Interval(合理的意義多久它的最大您能買得起當小時變化標籤改變它 ...區間越高,更少的CPU的過程會佔用)之前,並在其Tick事件拖延,做您:

static void MyTimer_Tick(object sender, EventArgs e) 
{ 
    int pp = DateTime.Now.Hour; 
    label1.text=pp.tostring(); 
} 
2

您需要實施Timer,並將其Elapsed事件更新label1.text。僅僅撥打DateTime.Now.Hour是不夠的,因爲只更新一次。它沒有設置經常更新的循環方法。

using System.Timers; 

namespace Example { 
    static Timer _timer; 

    static void Main() { 
     _timer = new Timer(1000); // Update every 1 second. 
     _timer.Elapsed += UpdateMyLabel; 
     _timer.Start(); 
    } 

    static void UpdateMyLabel(object sender, ElapsedEventArgs e) { 
     label1.Text = DateTime.Now.Hour; 
    } 
} 
1

我會推導出Label類,並使用計時器滴答來更新標籤。就像在OOP中一樣;)

相關問題