0

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

我有一个名为“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();
   }
}

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

4

2 回答 2

1

我认为您没有设置活动。像这样做。

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

this.FormClosed += Form1_FormClosed;

这是方法:

void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
    foreach(var item in this.ownedForm)
    {
        item.close();
    }
}
于 2013-08-25T05:16:46.727 回答
1

首先这段代码不能编译!

您有几个语法错误:mdiparnt, addOwnedForm, ownedForm,close

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

现在Button_Click()如果你正在做

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

即使你只需要

this.AddOwnedForm(frm);

否则会抛出异常。我检查了这段代码,它工作得很好

于 2013-08-25T07:45:45.707 回答