【问题标题】:Close window confirmation on mdi parent without closing child在不关闭子项的情况下关闭 mdi 父项的窗口确认
【发布时间】:2014-06-12 00:10:19
【问题描述】:

我有一个 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 当您单击 no 时,mdi 子项不会返回 http://fasttrackdispatch.com/design/exitmenuno.png

问题是为什么 mdi 孩子会关闭,我们如何防止它?

【问题讨论】:

  • 最后一句我不太明白,都在运行。如果他们说是,他们想退出,你不必调用 App Exit。它已经退出了,所以不要取消就让它退出。
  • 编辑澄清;这是当用户改变主意并单击“否”时的引用 - (是成功正确关闭),单击“否”会导致父级内的所有窗口关闭

标签: vb.net winforms formclosing


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2012-12-15
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2021-04-17
    • 2015-05-22
    相关资源
    最近更新 更多