我有一个带有轮盘赌轮盘的面板,我需要对面板进行双重缓冲,以使其停止闪烁。谁能帮帮我?
编辑:
是的,我试过了。
panel1.doublebuffered不存在,只有this.doublebuffered。而且我不需要缓冲表单,只需要缓冲面板。
最佳答案
您需要派生自 Panel 或 PictureBox。
这取决于您选择启用缓冲的方式。
如果你设置了 this.DoubleBuffer 标志那么你应该没问题。
如果您手动更新样式,那么您必须自己在 WM_PAINT 中绘制表单。
如果您真的有雄心壮志,您可以维护自己的后台缓冲区并将其绘制为位图。
using System.Windows.Forms;
public class MyDisplay : Panel
{
public MyDisplay()
{
this.DoubleBuffered = true;
// or
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();
}
}
关于c# - 如何对面板进行双重缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/818415/