这是我的情景,希望你能为我解决
我有一个名为“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实例保持打开状态。我该怎么做才能解决它
答案 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)
首先这段代码不能编译!
您有几个语法错误:mdiparnt
,addOwnedForm
,ownedForm
,close
你可能没有分享你的实际代码,如果这不是你的代码那将是一个帮助你的问题。
现在正在进行Button_Click()
事件
frm.mdiparnt=this.MdiParent;
this.AddOwnedForm(frm);
即使你只需要
this.AddOwnedForm(frm);
或将抛出异常。我已经检查了这段代码并且工作得很好