七 关闭窗体 和 嵌入新窗体 来回切换

72 阅读1分钟
    #region  关闭前面窗体 嵌入新窗体
    private void ClosePreForm()
    {
      // 首先判断当前容器中是否存在窗体 
      // 所有窗体都继承 Control类 并且主要有容器都有 Controls
      foreach (Control item in this.spContainer.Panel2.Controls)
      {
        if (item is Form)
        {
          Form objControl = (Form)item; // 如果有窗体就转成成窗体
          objControl.Close();
        }
      }
    }
    //打开一个窗体, 把想要的窗体嵌套到想要的位置
    private void OpenForm(Form objFrm)
    {
      objFrm.TopLevel = false; // 将子窗体设置成非顶级控件
      objFrm.WindowState = FormWindowState.Maximized; // 让子窗体最大化显式
      objFrm.FormBorderStyle = FormBorderStyle.None; // 去掉窗体的边框
      objFrm.Parent = this.spContainer.Panel2;// 指定子窗体显式的容器
      objFrm.Show();
    }
    #endregion
    
    // 添加学员
    private void btnAddStudent_Click(object sender, EventArgs e)
    {
      ClosePreForm(); 
      OpenForm(new FrmAddStudent());
      //FrmAddStudent objFrm = new FrmAddStudent();
     
    }
    // 学员管理
    private void btnStuMenu_Click(object sender, EventArgs e)
    {
      ClosePreForm();
      OpenForm(new FrmStudentMenu());
    }

image.png

image.png