使用用户绘制的控件显示表单时如何避免屏幕闪烁?

时间:2008-10-20 23:59:03

标签: c# .net winforms user-controls onpaint

所以transparent background problem已经解决了。现在,每当我展示表格(或必须重新粉刷)时,我都会有很多闪烁。有没有办法在油漆事件完成之前无法更新屏幕,或者在绘制所有物体时以任何其他方式停止闪烁和闪烁的1/2秒?

ANSWER :双重缓冲是可行的方法。我已经在控件上进行了双缓冲,但必须在表单上进行设置。我虽然双缓冲只在你自己继承OnPaint时起作用。

3 个答案:

答案 0 :(得分:10)

您是否尝试为表单设置DoubleBuffered属性?

答案 1 :(得分:5)

Double Buffering可能有所帮助,您可能想要尝试的另一件事是:

SuspendLayout();

... dostuffhere

ResumeLayout();

答案 2 :(得分:2)

在表单上设置DoubleBuffered属性。