拥有的形式和mdi父母

时间:2013-08-25 05:02:06

标签: c# winforms forms

这是我的情景,希望你能为我解决

我有一个名为“MainForm”的MDI容器表单。在MainForm中有一个简单的表单调用“Form1”。在Form1中有一个按钮。每次推动它时,它会打开一个新表单,其中包含“Form2”的实例。以下代码是单击按钮事件。

Button_Click()
{
   Form2 frm=new Form2();
   frm.mdiparnt=this.MdiParent;
   this.addOwnedForm(frm);
   frm.Visible=true;
}

以下代码尝试在用户关闭Form1

时关闭所拥有的表单
Form1_CloseEvent()
{
   foreach(var item in this.ownedForm)
   {
      item.close();
   }
}

但是当调试器进入close事件时,只需关闭Form1,并且form2实例保持打开状态。我该怎么做才能解决它

2 个答案:

答案 0 :(得分:1)

我认为你没有设置这个活动。这样做。

将其添加到您的Button_Click()方法:

this.FormClosed += Form1_FormClosed;

以下是方法:

void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
    foreach(var item in this.ownedForm)
    {
        item.close();
    }
}

答案 1 :(得分:1)

首先这段代码不能编译!

您有几个语法错误:mdiparntaddOwnedFormownedFormclose

你可能没有分享你的实际代码,如果这不是你的代码那将是一个帮助你的问题。

现在正在进行Button_Click()事件

frm.mdiparnt=this.MdiParent;
this.AddOwnedForm(frm);

即使你只需要

this.AddOwnedForm(frm);

或将抛出异常。我已经检查了这段代码并且工作得很好