我的應用程序是一個C#Windows窗體應用程序。當用戶按下按鈕「生成」我的應用程序創建一個新線程並運行新的工藝過程進行類似下面標籤和進度條
Loop counter = 1 to N
progressbar = counter/N
Display msg on label1
Do some tasks
Loop
progressbar = 100%
Display msg on lable1
我已經委託我的processbar和標籤的MSG這個僞代碼,這些消息顯示出來當它在循環內沒有任何問題時,我甚至添加了一個事件來運行Application.DoEvents(),只要標籤文本發生變化,但是我的最後一個信息從不顯示,我試過在最後一個位置放置Application.DoEvents()味精標籤,但沒有解決方案。任何人都遇到過這個?
感謝大家的幫助!
編輯
這是我如何編碼的我最後MSG(循環之後的一個)
this.BeginInvoke((MethodInvoker)delegate()
{
toolStripProgressBar1.Value = 100;
btnCancel.Enabled = false;
btnBrowse.Enabled = true;
btnSaveTo.Enabled = true;
btnGenerate.Enabled = false;
// Performance testing
lblGeneratingInfo.Text = "Generation Complete! Total Run time: " + DateTime.Now.Subtract(startDate).ToString();
});
FIXED: 我假設我試圖顯示文本太長...當我用「運行時間:」替換「生成完成:總運行時間」時,它顯示o_o
嘿謝謝你的建議,我已經拿出Application.DoEvents()更改文本,一切仍然運行良好的新線程,但最後的信息仍然不會顯示,所有其他信息shwos up perfect – ChickSentMeHighE 2010-06-28 12:25:13
@MikeAbyss - 你確定標籤是可見的嗎?目前還不清楚在那裏出現了什麼* – 2010-06-28 12:49:59
是的,標籤總是可見的,我的代碼也不會改變其可見性,或多或少最後的味精應該顯示爲「Generation Complete!Total run time [The time它完成了這個過程]「。最初我有一個只包含一個標籤的狀態欄,這個標籤在更新文本和顯示時沒有問題,但是當我將進度條添加到狀態欄時,這個問題就開始發生了。謝謝! – ChickSentMeHighE 2010-06-28 13:04:46