我有一个 .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/