关闭mdi父级的窗口确认而不关闭子级

时间:2014-06-12 00:10:19

标签: vb.net winforms formclosing

我有一个mdi父窗体,当打开时可能有4个以上的子窗口打开,除了关闭功能外,一切都运行良好 - 我有一个确认窗口显示如下

Private Sub index_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    If MessageBox.Show("Are you sure you want to exit?", "prompt", MessageBoxButtons.YesNo) = DialogResult.Yes Then
        'allow close
    Else
        e.Cancel = True
    End If
End Sub

这是正常工作除了在mdi父级保持打开状态时单击“否”,子表单全部关闭时。我该如何防止这种情况?

图片帮助:

正常操作 http://fasttrackdispatch.com/design/normalop.png

但是当你点击x并且它会弹出看起来像这样的提示信息(由于某种原因通知所有mdi子元素都关闭了 - 我没有为此编写代码) http://fasttrackdispatch.com/design/exitmenu.png 当您单击否时,mdi子项不会返回 http://fasttrackdispatch.com/design/exitmenuno.png

问题是为什么mdi孩子会关闭,我们怎么能阻止它呢?

1 个答案:

答案 0 :(得分:1)

您可以处理子表单的FormClosing事件,如果e.CloseReasonMdiFormClosing,您可以提示用户在子表单之前进行确认已关闭。