MDI Parent的FormClosing事件总是关闭一个MDI子项

时间:2013-08-07 14:36:16

标签: c# winforms

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

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

当我点击窗口上的红叉时,当我有一些MDI孩子出现时,它将完全关闭一个 MDI孩子。当我删除e.Cancel = true时,行为是相同的,除非它会在所有孩子都离开时关闭父窗体。

孩子们没有注册FormClosing处理程序。

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

1 个答案:

答案 0 :(得分:2)

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