首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不调用FormClosing方法而隐藏窗体

不调用FormClosing方法而隐藏窗体
EN

Stack Overflow用户
提问于 2012-02-15 20:29:20
回答 5查看 2.2K关注 0票数 2

我有两个表单,我将它们链接起来,这样当第二个表单关闭时,第一个表单也会关闭(使用FormClosing方法)。

这样做的问题是,当我想隐藏第二个表单时,它会自动关闭第一个表单。是否有一种方法可以在不实际调用FormClosing方法的情况下隐藏窗体?

当使用"Visible = false“和”FormClosing ()“时,隐藏方法似乎仍然被调用。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-22 22:00:52

我更改了我的程序,使其按如下方式启动:

代码语言:javascript
复制
        MainForm mainForm = new MainForm();
        mainForm.Show();
        Application.Run();

而不是:

代码语言:javascript
复制
        Application.Run(new MainForm());

在每个表单中,我都添加了一个FormClosing事件,用于检查用户是否选择关闭应用程序。如果是这种情况,则会向用户显示一个提示,要求用户确认:

代码语言:javascript
复制
    private void ImageSelect_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.UserClosing)
        {
            if (DialogResult.No == MessageBox.Show("Are you sure you wish to exit?", "Exit Confirmation", MessageBoxButtons.YesNo))
                e.Cancel = true;
            else { Application.Exit(); }
        }
    }

现在可以从应用程序中的任何表单关闭应用程序。

票数 2
EN

Stack Overflow用户

发布于 2012-02-15 20:31:28

在form或Visible=false上调用Hide(),但考虑到在这种情况下,form保留在内存中,该form分配的所有资源都保留在内存中。

如果这对你来说是一个问题,我会建议修改你的架构。

票数 2
EN

Stack Overflow用户

发布于 2012-02-15 20:33:40

您想要使用form.Hide()

这只是对用户隐藏了表单,而没有实际关闭它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9293391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档