非顶级表单的StartPosition

时间:2016-04-21 05:55:03

标签: c# .net winforms

即使我以这种方式手动编程,也无法设置子表单的起始位置:

f = new Home_Button_Forms.Home_Mandated_Organization();
f.TopLevel = false;
f.Parent = panel1;
f.WindowState = System.Windows.Forms.FormWindowState.Normal;
f.StartPosition = FormStartPosition.CenterScreen;
f.Show();

它仍然出现在panel1的左上角(父窗体)。

1 个答案:

答案 0 :(得分:2)

如果您想将不是顶级的表单移动到其容器面板的中心,您可以手动设置表单的Location

var f = new Form2();
f.TopLevel = false;
f.Parent = this.panel1;
f.StartPosition = FormStartPosition.Manual;
f.Location = new Point((this.panel1.Width - f.Width) / 2, 
                       (this.panel1.Height - f.Height) / 2);
f.Show();