如何在加载时延迟显示WinForm以防止其控件闪烁?

时间:2016-04-01 08:47:34

标签: c# .net winforms visual-c++

好的,所以我的表格有很多嵌套"面板"与背景图像和它上面的很多按钮。每次显示表单(Not Minimize / Restore但Hide / Show)时,控件在屏幕上呈现时都会闪烁。

在将不透明度设置为100%之前,我可以使用具有最小延迟的不透明度来渲染控件。但我想知道是否有更好的方法来做到这一点。 .Net是事件驱动的我希望有一种方法可以检测Winform之前在Winform上显示所有控件的时间是什么。显示"表示winform本身。

我已经在Winform上尝试了this::DoubleBuffered=true;,但它并没有像预期的那样成功。

1 个答案:

答案 0 :(得分:1)

有人可能会解释原因,但是将这个方法放在一个表单中可以帮助我避免在我的面板中出现闪烁问题,这些面板有多个按钮和图像控件。需要提一下的是,我的控件是在后面的代码中创建的(动态)。

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
            return cp;
        }
    }