2009-08-05 75 views
2

我需要刷新窗體中的控件,爲此我使用this.Refresh(),但窗體閃爍。我怎樣才能順利刷新控件?刷新表格上的所有控件

使用Application.DoEvents()是否順利,但使用Application.DoEvents()來刷新是個不錯的主意?

回答

0

如果表單閃爍,表示它已經獲得大量更新,導致重新繪製。

如果可能的話,你應該進行配置文件查看是什麼導致所有的更新,並嘗試和刪除一些,因爲將顯然是重複的。

如果可能的話,將後臺操作轉移到異步線程 - 但記住要調用回UI線程以獲取對實際控件的任何更新。

作爲最佳實踐,通常最好避免泵送消息循環(即調用Application.DoEvents()),因爲它可能會導致過多的繪畫和更多的閃爍不少。記住它強制處理所有事件,而不僅僅是繪製事件。

2

Form.ActiveForm.Update();