C# 如何防止在C中关闭隐藏窗体#

C# 如何防止在C中关闭隐藏窗体#,c#,formclosing,C#,Formclosing,我希望在某些情况下防止关闭表单。我知道OnFormClosing的用法, 但是当表单被隐藏(Visible==false)时,不会调用OnFormClosing方法。 在这种情况下,有没有办法拦截表单关闭 编辑(更多详细信息): 该表单是MdiParent中的子级,应在后台保持不可见,并等待来自另一个线程的调用(通过调用) 当用户“断开连接”时,MdiParent将关闭所有子窗口,在这种情况下,上面的表单应保持打开状态,但不可见并仍在等待调用。 当中间父级本身关闭时,所有窗体都应关闭 Edit2

我希望在某些情况下防止关闭表单。我知道OnFormClosing的用法, 但是当表单被隐藏(Visible==false)时,不会调用OnFormClosing方法。 在这种情况下,有没有办法拦截表单关闭

编辑(更多详细信息): 该表单是MdiParent中的子级,应在后台保持不可见,并等待来自另一个线程的调用(通过调用)

当用户“断开连接”时,MdiParent将关闭所有子窗口,在这种情况下,上面的表单应保持打开状态,但不可见并仍在等待调用。 当中间父级本身关闭时,所有窗体都应关闭

Edit2(没有解决方案?): 似乎没有解决办法。我现在的解决方法是在MdiParent代码中排除我的不可关闭表单,这将关闭所有其他表单

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
                // This will cancel the event
                e.Cancel = true;
}

不管原因如何,这将有效地阻止表单关闭。

如果表单被隐藏,用户如何关闭它?或者你是说像任务管理器这样的应用程序?如果它是隐藏的,是什么导致它关闭的?必须有一些与结束相关的其他操作,您可以显式地调用表单的某些函数来完成您需要执行的操作。否则,您应该提供有关该问题的更多信息。是什么导致隐藏窗体关闭的?请在一些细节后,这是我第一次尝试,只要形式是可见的,它的工作。但是在
Form.Visible=false
之后,调用的最后一个方法是OnHandleDestroyed。如何关闭MDIChild?我使用frmChild.close()在MdiParent表单中关闭它。我上传了一个最小的示例项目。当子窗体可见时,无法关闭。隐藏子窗体时,可以关闭它(和父窗体)。