我有一个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();
}
答案 0 :(得分:0)
当孩子的FormBorderStyle未设置为Sizable时,可能会发生这种情况。
尝试:
dlg.FormBorderStyle = FormBorderStyle.Sizable;
答案 1 :(得分:0)
我必须将this.LayoutMdi置于受保护的覆盖void OnShown以使布局正常工作https://stackoverflow.com/a/2836353/74585