![](/img/trans.png)
[英]Resize the multiple child forms in mdiparent automatically , panels and mdi C#
[英]MDI Child Forms C#
单击“ X”按钮时如何检查MDI子窗体的关闭事件,并让父窗体知道它已关闭?
您可以简单地听MDI中的FormClosed事件。
var childForm = new ChildForm();
childForm.FormClosed += new FormClosedEventHandler(form_FormClosed);
childForm.Show();
在FormClosing事件中,您可以执行
TheMainForm form = (TheMainForm)this.MdiParent()
form.AlertMe( this );
从mainForm内将关闭事件附加到子窗体
Form mdiChild = new Form();
mdiChild.MdiParent = this;
mdiChild.Closed += (s, e) => { //... };
mdiChild.Show();
没有检查代码,但不应该那么难
很好,下面的代码显示了父窗体如何识别子窗体是否已关闭,还可以识别出是否有任何新的子窗体添加到该父窗体。
private List<Form> ChildFormList = new List<Form>();
private void MyForm_MdiChildActivate(object sender, EventArgs e)
{
Form f = this.ActiveMdiChild;
if (f == null)
{
//the last child form was just closed
return;
}
if (!ChildFormList.Contains(f))
{
//a new child form was created
ChildFormList.Add(f);
f.FormClosed += new FormClosedEventHandler(ChildFormClosed); // here the parent form knows that that child form has been closed or not
}
else
{
//activated existing form
}
}
private void ChildFormClosed(object sender, FormClosedEventArgs e)
{
//a child form was closed
Form f = (Form)sender;
ChildFormList.Remove(f);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.