MDI父级';s FormClosing事件总是关闭一个子MDI

本文关键字:MDI 一个 父级 事件 FormClosing | 更新日期: 2023-09-27 18:26:48

我有一个带有此FormClosing事件处理程序的MDI父级:

private void FrmMdiParent_FormClosing(object sender, FormClosingEventArgs e) {
    e.Cancel = true;
}

当我有一些MDI子项时,当我单击窗口上的红十字时,它将恰好关闭一个MDI子项。当我删除e.Cancel = true时,行为是相同的,只是当所有子窗体都不在时,它会关闭父窗体。

子级没有注册FormClosing处理程序。

如何在不关闭任何MDI子项的情况下取消FormClosing事件?

MDI父级';s FormClosing事件总是关闭一个子MDI

foreach(Form f in yourMDIForm.MdiChildren)
    f.FormClosing += ChildFormClosing;
private void ChildFormClosing(object sender, FormClosingEventArgs e){
    if(e.CloseReason == CloseReason.MdiFormClosing) e.Cancel = true;
}