2009-08-05 74 views
2

我需要刷新窗体中的控件,为此我使用this.Refresh(),但窗体闪烁。我怎样才能顺利刷新控件?刷新表格上的所有控件

使用Application.DoEvents()是否顺利,但使用Application.DoEvents()来刷新是个不错的主意?

回答

0

如果表单闪烁,表示它已经获得大量更新,导致重新绘制。

如果可能的话,你应该进行配置文件查看是什么导致所有的更新,并尝试和删除一些,因为将显然是重复的。

如果可能的话,将后台操作转移到异步线程 - 但记住要调用回UI线程以获取对实际控件的任何更新。

作为最佳实践,通常最好避免泵送消息循环(即调用Application.DoEvents()),因为它可能会导致过多的绘画和更多的闪烁不少。记住它强制处理所有事件,而不仅仅是绘制事件。

2

Form.ActiveForm.Update();