[基础控件: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 }
浙公网安备 33010602011771号