1

我有一个 MDI 容器,它允许用户在打开时选择是让表单的子项平铺还是层叠。用户可以通过单击并选中菜单中的项目来选择此选项。但是,在检查项目并打开表单后,它们会出现在另一个之上,而不是平铺或层叠。我试图在打开表单后调用布局方法[在下面的方法中的 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();

    }
4

2 回答 2

1

当孩子的 FormBorderStyle 未设置为 Sizable 时,可能会发生这种情况。

尝试:

dlg.FormBorderStyle = FormBorderStyle.Sizable;
于 2013-07-26T16:26:15.330 回答
0

我必须将 this.LayoutMdi 放入 protected override void OnShown 以使布局正常工作https://stackoverflow.com/a/2836353/74585

于 2014-04-21T02:25:40.683 回答