日期:2014-05-18  浏览次数:20981 次

如何关闭父窗体中panel上的子窗体(c#winform)
如果把子窗体直接显示在父窗体中就可以这样写关闭的代码:
  private void button2_Click(object sender, EventArgs e)
  {
  if (this.ActiveMdiChild != null)
  {
  this.ActiveMdiChild.Close();
  }

  }
但是现在子窗体是放在父窗体上的panel1中,上面的代码就不管用了,差了很多,没找见答案,求助各位高手了





------解决方案--------------------
实际上你把窗体加入了panel,那么这个窗体已经只是个控件了,和普通的textbox控件没什么两样,那么你能告诉我如何关闭panel中的textbox控件吗,好像没这么一说,因此,实际上关闭panel的中子窗体(form),就是从panel中移除子窗体form:代码如下:

Form2 form = new Form2();//要声明为成员变量哦
//添加进panel的按钮,你应该已经实现了
private void button1_Click_1(object sender, EventArgs e)
{
form.TopLevel = false;//这就是使你窗体变控件的一步
form.Dock = DockStyle.Fill;
form.FormBorderStyle = FormBorderStyle.None;
form.Parent = panel1;//你panel的id
form.Show(); 
}
//关闭panel中子窗体的按钮
private void button2_Click(object sender, EventArgs e)
{
panel1.Controls.Remove(form);//其实就是一个控件的移除
}