【发布时间】:2019-06-15 19:50:46
【问题描述】:
我正在尝试布局具有一个子侧栏窗体和多个子窗体的 MDI。
点击排列按钮时,我试图让布局显示在以下屏幕截图中(侧栏和最顶部打开的子项并排显示):
初始化侧边栏
sideBarForm = new Form();
sideBarForm.MdiParent = this;
sideBarForm.Show();
sideBarForm.Dock = DockStyle.Right;
sideBarForm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
sideBarForm.Name = "sideBarForm";
添加新的孩子
Form childForm = new Form();
childForm.MdiParent = this;
childForm.Show();
安排布局
private void Arrange_Click(object sender, EventArgs e)
{
foreach (Form child in MdiChildren)
{
if (child.Name != sideBarForm.Name)
{
child.WindowState = FormWindowState.Normal;
child.Width = this.ClientRectangle.Width - sideBarForm.Width - 50;
child.Height = this.ClientRectangle.Height - 150;
}
}
}
为了使两种形式正确并排,它需要“玩”数字。对于宽度,我删除了 50 像素,高度为 150 像素。
将这两种表格并排放置的正确方法是什么?
注意:MDI 可以包含打开的多个表单,因此我不能使用例如 SplitContainer 或 TableLayoutPanel。
【问题讨论】: