C# MDI布局未生成所需的输出

C# MDI布局未生成所需的输出,c#,winforms,mdi,C#,Winforms,Mdi,我有一个MDI容器,允许用户在窗体的子项打开时选择是平铺还是层叠。用户可以通过单击并选中菜单中的项目来选择此选项。但是,在检查项目并打开表单后,它们会显示在彼此的顶部,而不是平铺或层叠。我尝试在打开表单后调用layout方法[在下面的方法中在dlg.Show之后],但它仍然不能生成正确的布局 有什么想法吗 菜单事件处理程序 private void titledToolStripMenuItem_Click(object sender, EventArgs e) { ca

我有一个MDI容器,允许用户在窗体的子项打开时选择是平铺还是层叠。用户可以通过单击并选中菜单中的项目来选择此选项。但是,在检查项目并打开表单后,它们会显示在彼此的顶部,而不是平铺或层叠。我尝试在打开表单后调用layout方法[在下面的方法中在dlg.Show之后],但它仍然不能生成正确的布局

有什么想法吗

菜单事件处理程序

private void titledToolStripMenuItem_Click(object sender, EventArgs e)
    {
        cascadingToolStripMenuItem.Checked = false;
        this.LayoutMdi(MdiLayout.TileHorizontal);
    }

    private void cascadingToolStripMenuItem_Click(object sender, EventArgs e)
    {
        titledToolStripMenuItem.Checked = false;
        this.LayoutMdi(MdiLayout.Cascade);
    }
形式开放法

private void openTallChildToolStripMenuItem_Click(object sender, EventArgs e)
    {
        TallChild dlg = new TallChild(this.height);
        dlg.MdiParent = this;
        dlg.Show();

    }

当子项的FormBorderStyle未设置为“大小”时,可能会发生这种情况

尝试:


我不得不在演示中将此.LayoutMdi置于受保护的覆盖无效状态,以使布局正常工作

检查dizzy.stackoverflow的答案。如果这对您没有帮助,那么向我们展示子表单的构造函数和表单加载
dlg.FormBorderStyle = FormBorderStyle.Sizable;