繁体   English   中英

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

[英]How can I delay showing a WinForm to prevent its controls from flickering when loading up?

好的,我的表单上有很多带有背景图片的嵌套“面板”,并且上面有很多按钮。 每次显示表单时(不是最小化/还原而是隐藏/显示),控件在呈现到屏幕上时都会闪烁。

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

我已经试过this::DoubleBuffered=true; 在Winform上,但是没有按预期进行。

有人可能会解释为什么,但是将下面的这种方法放在表格中可以帮助我避免面板上有多个按钮和图像控件的闪烁问题。 需要提及的是,我的控件是在后面的代码中(动态)创建的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM