首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使mdichild加载到mdiparent窗口的中心

如何使mdichild加载到mdiparent窗口的中心
EN

Stack Overflow用户
提问于 2009-08-04 15:17:02
回答 4查看 26.8K关注 0票数 6

大家好,

我有这段代码,其中的窗口属性使子窗口加载在mdiparent的中心。

代码语言:javascript
复制
        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

EN

回答 4

Stack Overflow用户

发布于 2009-08-04 15:48:40

我对此进行了一些实验,首先得到了与Patrick相同的解决方案。但是我被the documentation of the StartPosition property中的以下语句所困扰

对于多文档界面(MDI子窗体)等窗体,您还可以将窗体定位为显示在屏幕中心或其父窗体的中心。

所以,我决定一定要有办法。还有一种方法,尽管我觉得这并不直观:将StartPosition设置为CenterScreen (而不是CenterParent):

代码语言:javascript
复制
MdiChildUI form = new MdiChildUI();
form.MdiParent = this;
form.StartPosition = FormStartPosition.CenterScreen;
form.Show();

当然,您也可以在设计器中而不是在代码中设置它。

票数 16
EN

Stack Overflow用户

发布于 2009-08-04 15:32:33

我尝试将具有MDI容器窗体的子项显示为所有者,但对我造成了异常。您可以在显示子对象之前手动设置位置,如下所示:

代码语言:javascript
复制
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();

编辑:

代码语言:javascript
复制
f.StartPosition = FormStartPosition.CenterScreen;

是将mdichild放在其父窗体上的正确方式。

票数 5
EN

Stack Overflow用户

发布于 2009-08-04 15:54:52

将开始位置设置为中心屏幕对我来说是完美的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1228120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档