点击父窗体的按钮就会生成子窗体显示在父窗体的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显示在最顶层
你不要去改TopLevel属性
你要的只是一个前后关系而已
只要你的窗体A不要设置TopLevel,B也不设置TopLevel,那么后打开的窗体本来就自然的在最前面
不可以有两个窗体都是TopLevel,那你就让它们都不是TopLevel不就行了
把窗体换成控件
同意楼上看法,将窗体封装成控件,加载控件时定义层级