C# MDI窗体打开子窗体,子窗体关闭后不关闭MDI窗体
要实现在C#中,在MDI窗体打开子窗体后,子窗体关闭后不关闭MDI窗体,可以使用以下方法:
- 在MDI窗体中创建一个方法,用于打开子窗体:
private void OpenChildForm(Form childForm)
{
childForm.MdiParent = this;
childForm.FormClosed += ChildForm_FormClosed;
childForm.Show();
}
- 在MDI窗体的FormClosed事件处理程序中,移除子窗体的FormClosed事件处理程序,并将其设置为null:
private void ChildForm_FormClosed(object sender, FormClosedEventArgs e)
{
((Form)sender).FormClosed -= ChildForm_FormClosed;
((Form)sender).MdiParent = null;
}
- 在MDI窗体中的按钮点击事件或其他需要打开子窗体的事件中,调用OpenChildForm方法来打开子窗体:
private void btnOpenChildForm_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
OpenChildForm(childForm);
}
这样,当子窗体关闭时,子窗体的FormClosed事件处理程序会被触发,然后在处理程序中取消子窗体的MdiParent属性,并将其从MDI窗体中移除,从而实现子窗体关闭后不关闭MDI窗体的效果。
原文地址: https://www.cveoy.top/t/topic/ptLl 著作权归作者所有。请勿转载和采集!