我必须禁用OnPaintBackground
on myTableLayoutPanel
以消除首先绘制的背景引起的闪烁(因为我正在使用 paint 方法在 TLP 上绘图,是的,我需要一个 TLP,因为它包含许多用于某个目的的控件)。所以我的代码如下:
public static bool FlickerPanel = false;
public class FlickerTableLayoutPanel : TableLayoutPanel
{
protected override void OnPaintBackground(PaintEventArgs e)
{
if (FlickerPanel)
base.OnPaintBackground(e);
}
}
然后在我的绘画方法中,我让它绘制它自己的背景。所以在运行时它很好。
编辑:我发现了问题的根源。通过覆盖 OnPaintBackground,它会禁用任何让设计者绘制背景的代码。如果我将覆盖全部删除,则不会出现图形故障。
protected override void OnPaintBackground(PaintEventArgs e)
{
base.OnPaintBackground(e);
}
即使上面的代码也禁用了设计视图渲染并导致图形故障。非常感谢任何帮助!