2011-10-20 77 views
0

我創建了一個定時器控制,並設置一些屬性GUI的定時器類更新文本?

定時器

private void timerClose_Tick(object sender, EventArgs e) 
    { 
     this.Text = timerClose.Interval.ToString(); 
    } 

private void MyForm_Load(object sender, EventArgs e) 
    { 
     timerClose.Enabled = true; 
     timerClose.Interval = 10000; 
     timerClose.Start(); 
    } 

一個事件,但沒有發生過。如何更新它?

+0

可能是你的UI線程在那個時候很忙..是你的表單被絞死了嗎? – Vasya

+0

你確定勾號沒有發生?你在這個tick中做什麼是在你的表單標題中寫入'timerClose.Interval'值 - 一個常量。這是正常的,那麼你沒有看到你的表單發生變化。你有沒有嘗試在tick中添加斷點? – Otiel

回答

1

請問您的形式顯示「10000」約10秒鐘後,該窗體的標題不會改變?

如果是這樣,你的程序正在做它應該做的事情。當您的計時器觸發時,它會將您的表單標題更改爲您設置爲10000的計時器的Interval屬性。該值不會更改,因此您的表單標題不會更改。

如果你的目的是要與每一個計時器滴答你的窗體的標題增量創建要在每個tick遞增一流水平計數器,就像這樣:

int _tickCounter = 0; 

private void timerClose_Tick(object sender, EventArgs e) { 
    this.Text = (++_tickCounter * timerClose.Interval).ToString(); 
} 

此代碼將改變窗體的標題爲「10000 「表單打開10秒後,每隔10秒將此值增加10000。

1

只要確保你的計時器已啓用,它打開後,事件處理程序被分配適當

+0

確保!我添加了直接的視覺工作室。請幫助我或代碼類似 –

+1

嗯..我測試了與你說的一樣的條件和它在這裏工作。可能會給我們更多的信息,或者在您的窗體中的InitializeComponent()方法中看到關於此計時器的信息。或者可能是您的主UI線程正忙。 – Zenwalker

+0

http://ne7.upanh.com/b6.s18.d2/4f91b6ff01b2651c90deee3b5f5e5b93_36794857.untitled2.jpg http://ne8.upanh.com/b1.s12.d1/7455e2bbf29270af3397c5c1e3223660_36794858.untitled.jpg –