问题遇到的现象和发生背景
点击父窗体的按钮就会生成子窗体显示在父窗体的panel控件里,后点击的窗体会显示在最顶层
现在的问题是子窗体A在父窗体的panel里,然后A有个按钮,点击生成子窗体B,B也要显示在父窗体的panel里,
并且是最顶层
问题相关代码,请勿粘贴截图
//子窗体A打开子窗体B的方法
private void btnEdit_Click(object sender, EventArgs e)
{
FormMain formMain = (FormMain)FormMain.ActiveForm;
FormRegister formRegister = new FormRegister();
formRegister.TopLevel = true;
formRegister.Dock = DockStyle.Fill;
formRegister.Parent = formMain.pnlHost;
formMain.pnlHost.Controls.Add(formRegister);
formRegister.Show();
}
运行结果及报错内容
System.ArgumentException:“无法将顶级控件添加到控件。”
我的解答思路和尝试过的方法
将TopLevel 设置为false,可以成功打开,但是不是我想要的效果,设置为false后,新打开的子窗体B就会被直接被
之前打开过的子窗体A覆盖到最底层
我想要达到的结果
不清除已经打开的子窗体A,将子窗体B显示在最顶层