大家好,
我有这个代码,其中窗口属性使子窗口加载在mdiparent的中心.
Form2 f = new Form2();
f.MdiParent = this;
//center screen is working.
//f.StartPosition = FormStartPosition.CenterScreen;
f.StartPosition = FormStartPosition.CenterParent;
Run Code Online (Sandbox Code Playgroud)
但不是让子窗口弹出中心,而是在左侧加载.谁可以帮我这个事.请参考下面的截图.
我甚至尝试过在vb中做同样的事情.即使在那里我也得到同样的错误.我认为FormStartPosition.CenterParent的属性是虚拟的.
Fre*_*örk 13
我对此进行了一些实验,并首先得到了与Patrick相同的解决方案.但我在该StartPosition财产的文件中被以下声明所窃听:
您还可以将表单放置在屏幕中央或其父表单的中心,以显示多文档界面(MDI)子表单等表单.
所以,我决定必须有办法.虽然我发现它并不直观,但设置StartPosition为CenterScreen(不 CenterParent):
MdiChildUI form = new MdiChildUI();
form.MdiParent = this;
form.StartPosition = FormStartPosition.CenterScreen;
form.Show();
Run Code Online (Sandbox Code Playgroud)
当然,您也可以在设计器中而不是在代码中设置它.
我尝试将 MDI 容器表单显示为所有者的孩子,但对我造成了异常。您可以在显示孩子之前手动设置位置,如下所示:
Form2 f = new Form2();
f.MdiParent = this;
f.StartPosition = FormStartPosition.Manual;
f.Location = new Point((this.ClientSize.Width - f.Width) / 2,
(this.ClientSize.Height - f.Height) / 2);
f.Show();
Run Code Online (Sandbox Code Playgroud)
编辑:
f.StartPosition = FormStartPosition.CenterScreen;
Run Code Online (Sandbox Code Playgroud)
是将 mdichild 放在其父窗体上的正确方法。