如何防止 C# 中隐藏表单的关闭

发布于 2024-10-24 04:32:22 字数 362 浏览 1 评论 0原文

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

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

当用户“断开连接”时,MdiParent 会关闭所有子窗口,在这种情况下,上述表单应保持打开状态,但不可见,并且仍在等待调用。 当 MidParent 本身关闭时,所有表单都应该关闭。

编辑2(没有解决方案?): 这个问题似乎没有办法解决。我现在的解决方法是在 MdiParent 代码中排除我的未关闭表单,从而关闭所有其他表单。

I want to prevent closing of a form in some cases. I know the usage of OnFormClosing,
but when the form is hidden (Visible==false), the OnFormClosing method is not called.
Is there a way to intercept form closing in this case?

Edit (some more details):
The form is a child in a MdiParent, should stay invisible in the background and wait for calls from another thread (by Invoke).

The MdiParent closes all child windows when the user "disconnects", in this case the above form should stay open, but invisible and still waiting for calls.
When the MidParent itself is closed, all forms should close.

Edit2 (no solution?):
It seems that there is no solution to this. My workaround now is to exclude my not-to-be-closed form in the MdiParent-code, that closes all other forms.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天邊彩虹 2024-10-31 04:32:22
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
                // This will cancel the event
                e.Cancel = true;
}

无论出于何种原因,这都会有效地阻止表单关闭。

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

Regardless of the reason, this will effectively stop a form from closing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文