关闭一个活跃的mdi孩子

时间:2014-02-13 08:32:52

标签: c#

我有这个代码,我可以使用菜单条关闭并打开子窗体。我的问题是,如果我有多个活动的子表单,我如何关闭特定的活动子表单?

private void fileMenu_Click(object sender, EventArgs e)
{
    frmtview tv = new frmtview();
    if (ActiveMdiChild != null)
    {
        ActiveMdiChild.Close();
    }
    else
    {
        tv.MdiParent = this;
        tv.Dock = DockStyle.Left;
        tv.Show();
    }

}


private void Home_Load(object sender, EventArgs e)
{
    frmtview tv = new frmtview();
    tv.MdiParent = this;
    tv.Dock = DockStyle.Left;
    tv.Show();

}

1 个答案:

答案 0 :(得分:0)

你的意思是所有打开的儿童窗户?如果是这样,当打开/创建子窗口时,将对象添加到列表<>(成员变量)。单击关闭菜单时,只需迭代列表中的所有项目并调用close方法。

列出childControls = new List();

void Closeclick(.......)
{
   foreach(UserControl uc in childControls)
   {
      uc.Close();
   }
}

void ActivateClick(.......)
{
    HomeForm home = new HomeForm();
    childControls.Add(home);
    home.Show();    
}