[基础控件:new Form()之后设置子窗体相对于父窗体居中的2个解决办法]

解决办法1:

使用form.location定位,需要自己根据父form的大小和位置确定子form的位置,代码看起来是这个样子的:

重点是设置 about.StartPosition = FormStartPosition.Manual;

 

 1 private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
 2 {
 3     Form about = new About();
 4     int aboutX = 0,
 5         aboutY = 0;
 6 
 7     aboutX = this.Location.X + (int)(this.Size.Width - about.Size.Width) / 2;
 8     aboutY = this.Location.Y + (int)(this.Size.Height - about.Size.Height) / 2;
 9     //此处3句为相对父窗体居中
10     about.StartPosition = FormStartPosition.Manual;
11     about.Location = new Point(aboutX, aboutY);
12     about.ShowDialog();
13 
14 }

 

 

解决办法2:

使用FormStartPosition枚举的1个相对居中值(CenterParent)

代码看起来是这样的:

1 private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
2 {
3     Form about = new About();
4     //此处设置根据父窗体的位置由系统计算居中
5     about.StartPosition = FormStartPosition.CenterParent;
6     about.ShowDialog();
7 }

 

  

posted @ 2014-08-11 22:17  Thirty  阅读(291)  评论(0)    收藏  举报