MDI子表单C#
当单击“X”按钮并让父窗体知道它已关闭时,如何检查MDI子窗体的关闭事件 在FormClosing事件表单中,您可以执行MDI子表单C#,c#,mdichild,mdiparent,C#,Mdichild,Mdiparent,当单击“X”按钮并让父窗体知道它已关闭时,如何检查MDI子窗体的关闭事件 在FormClosing事件表单中,您可以执行 TheMainForm form = (TheMainForm)this.MdiParent() form.AlertMe( this ); 在FormClosing事件表单中,您可以执行以下操作 TheMainForm form = (TheMainForm)this.MdiParent() form.AlertMe( this ); 您只需在MDI中侦听FormClo
TheMainForm form = (TheMainForm)this.MdiParent()
form.AlertMe( this );
在FormClosing事件表单中,您可以执行以下操作
TheMainForm form = (TheMainForm)this.MdiParent()
form.AlertMe( this );
您只需在MDI中侦听FormClosed事件
var childForm = new ChildForm();
childForm.FormClosed += new FormClosedEventHandler(form_FormClosed);
childForm.Show();
您只需在MDI中侦听FormClosed事件
var childForm = new ChildForm();
childForm.FormClosed += new FormClosedEventHandler(form_FormClosed);
childForm.Show();
将已关闭事件从主窗体中附加到子窗体
Form mdiChild = new Form();
mdiChild.MdiParent = this;
mdiChild.Closed += (s, e) => { //... };
mdiChild.Show();
未检查代码,但不应太难从主窗体中将关闭的事件附加到子窗体
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);
}
private List ChildFormList=new List();
私有void MyForm_MdiChildActivate(对象发送方,事件参数e)
{
Form f=this.ActiveMdiChild;
如果(f==null)
{
//最后一个子表单刚刚关闭
返回;
}
如果(!ChildFormList.Contains(f))
{
//创建了一个新的子窗体
子表单列表。添加(f);
f、 FormClosed+=新FormClosedEventHandler(ChildFormClosed);//这里父窗体知道该子窗体是否已关闭
}
其他的
{
//激活现有表单
}
}
私有void ChildFormClosed(对象发送方,FormClosedEventArgs e)
{
//子窗体已关闭
表格f=(表格)发送者;
ChildFormList.Remove(f);
}
下面的代码显示了父窗体如何识别子窗体是否已关闭,并且还可以识别是否有任何新的子窗体添加到父窗体中
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);
}
private List ChildFormList=new List();
私有void MyForm_MdiChildActivate(对象发送方,事件参数e)
{
Form f=this.ActiveMdiChild;
如果(f==null)
{
//最后一个子表单刚刚关闭
返回;
}
如果(!ChildFormList.Contains(f))
{
//创建了一个新的子窗体
子表单列表。添加(f);
f、 FormClosed+=新FormClosedEventHandler(ChildFormClosed);//这里父窗体知道该子窗体是否已关闭
}
其他的
{
//激活现有表单
}
}
私有void ChildFormClosed(对象发送方,FormClosedEventArgs e)
{
//子窗体已关闭
表格f=(表格)发送者;
ChildFormList.Remove(f);
}
C中没有.AlertMe()方法,我找不到MDiParent方法,只有属性。您可以创建自己的,并将其公开C中没有.AlertMe()方法,我找不到MDiParent方法,只有属性。您可以创建自己的,并将其公开