双缓冲Mdi容器?

时间:2013-09-14 03:27:09

标签: c# visual-studio-2010

有没有办法同时将双缓冲区表单设置为mdi容器?

我试图绘制控件,但它没有激活双缓冲区功能,所以我的图形闪烁

2 个答案:

答案 0 :(得分:4)

MdiContainer只是Form IsMdiContainertrue。因此,您只需在该表单上设置DoubleBuffered = true

如果您的意思是MdiClient,我认为您必须尝试使用​​这样的Reflection

typeof(MdiClient).GetProperty("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance)
                 .SetValue(yourForm.Controls.OfType<MdiClient>().First(), true, null);

答案 1 :(得分:0)

对我不起作用......只对我有用:

protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle = API.WindowStylesEx.WS_EX_COMPOSITED;//| API.WindowStylesEx.WS_EX_LAYERED;

            return cp;
        }
    }

但有这个问题

https://stackoverflow.com/questions/29488865/non-client-area-buttons-maximize-minimize-close-do-not-glow