【发布时间】:2015-12-07 15:03:26
【问题描述】:
我正在使用 Windows 窗体编写应用程序。我需要使用 FormBorderStyle 设置为 None 的 MDI 子项。问题是,当我最大化时,孩子没有正确显示。显示 Form2 的代码是:
this.WindowState = FormWindowState.Maximized;
Form2 frm = new Form2();
frm.MdiParent = this;
frm.Size = this.ClientSize;
frm.ShowInTaskbar = false;
frm.WindowState = FormWindowState.Maximized;
frm.Show();
Form2 在设计器中的外观如下:
这是应用程序:
如何解决这个问题以正确显示 Form2?
【问题讨论】:
-
使用
UserControl代替MDI育儿很容易解决。我从来没有发现 MDI 表格有什么用处。窗中之窗对我来说毫无意义 -
我建议试试
frm.Show(this)。也许在添加孩子之后最大化父母会有所不同。 -
@René Vogt 感谢您的意见。但是,frm.Show(this) 会抛出异常:非顶级表单的表单无法显示为模态对话框。在调用 Show 之前从任何父窗体中删除该窗体。所以我不能将它与 MDI 一起使用。之后最大化会得到与帖子中描述的相同的结果。
-
MDI 不能正确支持无边界表单。最好不要使用 MDI,而是将无边框的子表单(或 UserControls)放在面板中。