2

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

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

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

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

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

4

1 回答 1

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;
}
于 2013-08-07T14:42:53.333 回答