双缓冲 MDI 容器

本文关键字:容器 MDI 缓冲 | 更新日期: 2023-09-27 18:31:20

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

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

双缓冲 MDI 容器

MdiContainer只是一个FormIsMdiContainer true。所以你只是在那个表格上设置DoubleBuffered = true

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

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

我工作...只对我有用:

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