大家好,
我有这段代码,其中的窗口属性使子窗口加载在mdiparent的中心。
Form2 f = new Form2();
f.MdiParent = this;
//center screen is working.
//f.StartPosition = FormStartPosition.CenterScreen;
f.StartPosition = FormStartPosition.CenterParent;但是,不是使子窗口在中间弹出,而是在左侧加载。有人能帮我这个忙吗。请参考下面的截图。
我甚至尝试过在vb中做同样的事情。即使在那里,我也得到了同样的错误。我认为FormStartPosition.CenterParent的属性是dummy。
alt text http://img13.imageshack.us/img13/7003/errorprb.jpg
发布于 2009-08-04 15:48:40
我对此进行了一些实验,首先得到了与Patrick相同的解决方案。但是我被the documentation of the StartPosition property中的以下语句所困扰
对于多文档界面(MDI子窗体)等窗体,您还可以将窗体定位为显示在屏幕中心或其父窗体的中心。
所以,我决定一定要有办法。还有一种方法,尽管我觉得这并不直观:将StartPosition设置为CenterScreen (而不是CenterParent):
MdiChildUI form = new MdiChildUI();
form.MdiParent = this;
form.StartPosition = FormStartPosition.CenterScreen;
form.Show();当然,您也可以在设计器中而不是在代码中设置它。
发布于 2009-08-04 15:32:33
我尝试将具有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();编辑:
f.StartPosition = FormStartPosition.CenterScreen;是将mdichild放在其父窗体上的正确方式。
发布于 2009-08-04 15:54:52
将开始位置设置为中心屏幕对我来说是完美的。
https://stackoverflow.com/questions/1228120
复制相似问题