c# – 非顶级表单的StartPosition

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

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的左上角(父窗体).

最佳答案 如果要将不是顶级的表单移动到其容器面板的中心,可以手动设置表单的位置:

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();
点赞