苏飞邮箱的个人签名模板名

1773人阅读
Winform交流(31)
C#怎么设置子窗体在主窗体中居中显示
问题的开始是由C#传传看主群里的印醒提出来的,下面我来说一下解决方案吧
其实表面上看是很简单的
开始吧,现在有两个窗体Form1主窗体,Form2子窗体
而且我相信大部分人都会这样写
在子窗体的Load事件中
this.StartPosition = FormStartPosition.CenterP
其实这样写是不对的,正确的写法应该是
this.StartPosition = FormStartPosition.CenterS
为什么是CenterScreen而不是CenterParent呢?
那是因为我们调用的方法的问题,如果你在调用子窗体时是这样写的话
Form2 f2 = new Form2();
f2.MdiParent
f2.Show();
那就得使用CenterScreen而不是CenterParent了,因为在Show的时候窗体是Owner页不是Parent
只要使用ShowDialog()方法时使用CenterParent才有效
大家会说这样就行了吗?其实也不行,我们的代码不应该写在Load事件中,而是在Show方法之前写。
正确的写法应该是这样的
Form2 f2 = new Form2();
f2.MdiParent
f2.StartPosition = FormStartPosition.CenterS
f2.Show();
在子窗体中你什么也不需要做
下面是我提供的一个例子,是源代码,大家如果还是感觉不太清楚的话可以下载例子看一下
源码打包下载地址:
再提供一个布局的其实属性
StartPosition属性有如下选项,分别含义如下:
&&CenterParent& && && && && && && &窗体在其父窗体中居中。& &
&&CenterScreen& && && && && && && &窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。& &
&&Manual& && && && && && && && && &窗体的位置由& &Location& &属性确定。& &
&&WindowsDefaultBounds& &&&窗体定位在& &Windows& &默认位置,其边界也由& &Windows& &默认决定。& &
&&WindowsDefaultLocation& & 窗体定位在& &Windows& &默认位置,其尺寸在窗体大小中指定。& &&&
& &CenterScreen的意思并不是屏幕居中(是相对的),它是在&当前显示窗口&中居中。
-------------------------------------------------------------签名部分------------------------------------------------------------------------
&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&& 欢迎大家转载,如果有转载请注明 本文出自:&&&&&&作者:苏飞,包括链接一定要加上,否则定追究责任&&&
签名:做一番一生引以为豪的事业;在有生之年报答帮过我的人;并有能力帮助需要帮助的人;&&&&
软件开发,功能定制,请联系我
QQ: Email:& MSN:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:206720次
积分:3580
积分:3580
排名:第7509名
原创:126篇
评论:430条
(3)(1)(7)(7)(5)(7)(3)(6)(1)(1)(1)(1)(1)(2)(2)(3)(2)(1)(1)(2)(12)(12)(4)(2)(6)(20)(1)(9)(6)(1)

参考资料

 

随机推荐