我有一个所有者绘制的UserControl,我实现了双缓冲。为了获得双缓冲无频闪工作,我必须覆盖OnPaintBackground事件,如下所示:在C#/ .NET 2.0中控制双缓冲自绘用户控件的设计器外观
protected override void OnPaintBackground(PaintEventArgs e)
{
// don't even have to do anything else
}
这在运行时的伟大工程。问题是,当我在设计时在窗体上有一个控件的实例时,它会变成一个黑洞,显示任何窗口拖过它的路径(因为OnPaintBackground事件的重写也控制着设计时的外观)。这只是一个表面上的问题,但它在视觉上有些震撼,它总是让项目的新开发人员承担一些可怕的错误。
是否有任何方法可以在设计时重写这样的重写方法,或者是否有其他解决方案?
是有一些原因,你不能使用内置的双缓冲? – 2008-11-16 02:34:38
是的 - 它不起作用。如果您使用DoubleBuffered = true创建用户控件,然后对其执行一堆绘图操作,则会出现闪烁。我真的不确定那是什么财产。 – MusiGenesis 2008-11-16 02:45:14