我想让子窗体在主窗体的Panel中显示,实现过程是这样的:单击主窗体菜单的一个按钮,在panel中显示一个子窗体,单击主窗体菜单的另一个按钮时,前一个子窗体关闭,显示另一个子窗体。不知道我的想法怎么才能实现,请大家指点一下,谢谢。

解决方案 »

  1.   

    private void button1_Click(object sender, EventArgs e)
               {
    panel1.Clear(); // 清空的是当前panel上的子窗体  
                   ChildForm child = new ChildForm();
                   child.TopLevel = false;
                  child.Dock = System.Windows.Forms.DockStyle.Fill;
                  child.FormBorderStyle = FormBorderStyle.None;
                  //child.Parent = this.panel1;
                  this.panel1.Controls.Add(child);
                  child.Show();
               }
      

  2.   

    非MDI            if (panel1.Tag != null && panel1.Tag is Form)
                {
                    ((Form)panel1.Tag).Close();
                }
                Form2 frm = new Form2();
                frm.TopLevel = false;
                frm.Parent = panel1;
                panel1.Tag = frm;
                frm.Show();
      

  3.   

    报错:“System.Windows.Forms.Panel”不包含“Clear”的定义,并且找不到可接受类型为“System.Windows.Forms.Panel”的第一个参数的扩展方法“Clear”(是否缺少 using 指令或程序集引用?)
      

  4.   

    哪用得着Clear啊,将当前的form.bringToFront()即可,第二次打开就不用再次生成了!