c# - 如何在 C#.NET 中关闭整个应用程序后结束进程?

标签 c# .net visual-studio-2005 desktop-application

我有一个 .NET 2005 (C#) 桌面应用程序,其中有一个登录表单和一个 MDI 表单,然后有多个子表单。所有其他窗体仅以 MDI 窗体打开。

用户登录后,我隐藏了登录表单,然后显示了MDI表单,但是当我关闭MDI表单时,我的应用程序并没有结束,因为登录表单仍然是隐藏的。我希望,当用户关闭 MDI 窗体时,整个应用程序应该关闭(本质上,进程不应该显示在任务管理器中),因为如果每次用户关闭并重新打开应用程序并登录,它会创建一些性能问题。

我正在做类似下面的事情:

//my login validation script,

//after successful login

this.Hide();

if (globalData.ObjMdiMain.IsDisposed)
{
    globalData.ObjMdiMain = new mdiMain();
}
globalData.ObjMdiMain.Show();

globalData 是我的静态类,我在其中创建整个应用程序所需的全局对象。在那里,我定义了我的 MDI 表单的 ObjMdiMain 对象,我在登录表单中访问它。

那么,有没有什么方法或函数可以从系统结束整个过程,比如“Application.End();”还是别的?

谢谢!

最佳答案

根据您的描述(如果我错了请纠正我),我假设您已将登录表单设置为您的启动表单,如下所示:

    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new LoginForm());
    }

不要那样做。将其更改为类似这样的内容:

    static void Main() {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        LoginForm frm = new LoginForm();
        if(frm.ShowDialog() == DialogResult.Cancel) {
            return;
        }

        Application.Run(new MdiForm());
    }

在您的登录表单代码中,根本不要调用 MDI 表单,只需验证用户名和密码并允许登录表单退出。 Main 方法将正确调用 MDI 窗体。

当您关闭 MDI 窗体时,您的应用程序将自然退出。

关于c# - 如何在 C#.NET 中关闭整个应用程序后结束进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1623695/

相关文章:

visual-studio - 从源代码管理中排除嵌套文件

c++ - Visual Studio 2012 中的小程序与 Visual Studio 2005 相比要慢得多

.Net 核心连接到 mongo db 不工作

c# - 如何解决另一个进程正在使用的文件?

c# - 编写 C# 代码以使用来自加密的 aspnet_regiis 功能

c++ - VS2005中包含头文件

c# - Azure 辅助角色从 Linux VM 复制文件

c# - FreeLibrary 无限期地返回 true

c# - SSRS 报告中令人讨厌的 NULL 复选框

c# - 加速简单的 LINQ 查询