2013-06-01 48 views
0

我有幾個標籤被填充字符串,我希望我的計時器會每500毫秒填充這些字符串。 我的問題,我嘗試調試我的代碼,似乎我的計時器並沒有在所有的工作:使用定時器更新標籤

這是我的類事件經過,我想我的標籤將填補所有這5個參數:

void MyClass_statusChangedEvent(string status, int packets, int packetsProgress, double bps, double pps) 
{ 
    MyObj obj = new MyObj(status, packets, packetsProgress, bps, pps); 
    timerStatus.Tag = obj; 
    timerStatus.Interval = 500;    
    timerStatus.Start(); 
} 

MyObj obj ...是我的對象,它擁有這5個參數並將其傳遞給我的計時器。 此課程的所有成員都有getter。

,這是我的計時器滴答:

private void timerStatus_Tick(object sender, EventArgs e) 
    { 
     //update label here 
    } 
+0

嘗試加入'timerStatus.Enabled = TRUE;' –

+0

仍然沒有工作 – user2214609

+0

不您的Tick方法在MyClass_statusChangedEvent啓動後開始調用?你確定該事件與控制器相連嗎?嘗試添加'timerStatus.Tick + = new EventHandler(timerStatus_Tick);'如果這不起作用,看看你是否可以讓計時器工作,如果它被實例化並設置在MyClass_statusChangedEvent方法之外。也許在表單的init方法中。 –

回答

1

嘗試添加

timerStatus.Tick += new EventHandler(timerStatus_Tick); 

timerStatus.Interval = 500; 
+0

以及如何將所有這5個參數傳遞給我的計時器? – user2214609

+0

如果你的屬性要在'MyClass_statusChangedEvent'之外更新並且你需要它們的更新值,你應該從'timerStatus_Tick'之外抓取它們,而不是讓它們通過'MyClass_statusChangedEvent'傳遞。有更好的方法來做到這一點,我建議試着讓它先工作,然後嘗試清理它:)祝你好運 –