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

use*_*140 7 .net c# user-controls onpaint winforms

因此解决了透明背景问题.现在,每次我展示表格(或必须重新粉刷),我都会有很多闪烁.有没有办法在油漆事件完成之前我无法更新屏幕,或者在绘制所有物体时以任何其他方式停止闪烁和闪烁的1/2秒?

答案:双重缓冲是要走的路.我已经在控件上进行了双缓冲,但必须在表单上进行设置.我虽然双缓冲只在你自己继承OnPaint时起作用.

Gul*_*zim 10

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


sch*_*opy 5

双缓冲可能有所帮助,您可能想要尝试的另一件事是:

SuspendLayout();

dostuffhere ...

ResumeLayout();

  • DoubleBuffered _increases_资源要求,但更有可能是有效的.暂停/ ResumeLayout()_ reduce_资源要求,但不太可能有效. (2认同)