2012-11-04 54 views
3

我想在我的應用程序中的maskedtextbox上設計更改時間,例如時間每秒更改一次的窗口。我已經設置如下maskedtexbox1:在MaskedTextbox上更改時間

maskedTextBox1.Text = DateTime.Now.ToShortTimeString(); 

這顯示當前系統時間短,但它不是每一秒,如Windows上的改變。怎麼做?

我在Visual Studio 2005中,.NET是,低於 3.5。

+0

如果@KonradViltersten向您提供的答案滿足您的要求,請對其進行分級**和**標記答案爲好(通過點擊綠色標記)。這樣你會幫助下一個人找到最好的答案。如果我們還沒有解決你的問題,請告訴我們使用評論仍然缺少的東西。貢獻,合作並擁有快樂的編碼! :) – 2012-11-04 10:06:10

+0

@AndreasJohansson,謝謝你的建議在未來也會對我更有用。感謝buddy –

+0

沒問題。如果你喜歡答案,可以自由地評分(如果你不喜歡它,可以降級 - **總是**告訴一個人爲什麼,就像這樣:-1,因爲目標錯誤的.NET版本)。 **總是**將答案評分爲正確的(就像你現在所做的那樣)或者告訴我們還有什麼遺漏。快樂的編碼! – 2012-11-04 11:38:19

回答

1

我會使用定時器,並觸發一個事件每秒更新一次。

  1. 創建一個計時器(包System.Windows.Forms中的類Timer的一個實例)。
  2. 將其頻率設置爲1秒(即1000毫秒)。
  3. 告訴它什麼時候調用的方法(事件處理程序Kaboom)。

在您的可執行代碼中的某處,您可以通過輸入以下內容來完成該操作。

Timer ticker= new Timer(); 
ticker.Interval = 1000; 
ticker.Tick += new EventHandler(Kaboom); 

在同一個類(或者,如果你有信心如何做到這一點,地方在那裏你可以到達的代碼)還創建處理程序觸發的事件滴答作響的,這樣的承諾你在定時關機時調用了一個方法。

private void Kaboom(Object sender, EventArgs eventArgs) 
{ 
    // Execute the tickability code 
    MaskedTextBox1.Text = DateTime.Now.ToShortTimeString(); 
} 

另外,不要忘記真正開始你的股票,當你覺得你準備好了。

MyTimer.Start(); 

田田!

編輯:

爲了完整起見,我還打算在@CuaonLe(能力和要求的用於.NET 3.5或更新更高的閾值)的答覆的一部分進行粘貼。

Timer timer = new Timer { Interval = 1000 }; 
timer.Tick += (obj, args) 
    => MaskedTextBox1.Text = DateTime.Now.ToLongTimeString(); 
timer.Start(); 
+0

您可能也想粘貼@CuongLe的回覆。如果有人搜索類似問題的答案,他們會得到兩個世界中最好的。 – 2012-11-04 10:03:14

1

您可以使用System.Windows.Forms.Timer更新文本框的值每秒例如:

var timer = new Timer(); 
timer.Interval = 1000; 

timer.Tick += delegate 
      { 
       textBox1.Text = DateTime.Now.ToLongTimeString(); 
      }; 

timer.Start(); 
+0

好的代碼。但我想知道它是否有助於可憐的OP。他想知道如何設置代碼。我不確定代表結構(我同意這一點很好)是幫助他的最佳方式。當我是一個新手,人們幫助我的水平太高時,我經常感到**更糊塗後,哈哈。但也許我只是慢... :) – 2012-11-04 09:33:00

+0

@CongLong,我正在使用VS-2005的計時器事件聲明不匹配 –

+0

@downvoter:care to comment? –