Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 流程在关闭应用程序c后继续#_C#_.net_Winforms_Visual Studio - Fatal编程技术网

C# 流程在关闭应用程序c后继续#

C# 流程在关闭应用程序c后继续#,c#,.net,winforms,visual-studio,C#,.net,Winforms,Visual Studio,我是C#的初学者,我正在尝试制作WFA应用程序。但有一个问题。当我运行它时,它会显示第一个(登录)表单,如果我在未登录的情况下关闭它,它会正常工作,但当我登录时,第一个表单会隐藏,第二个表单会显示,如果我单击X按钮关闭它,表单会消失,但我可以在任务管理器中看到正在运行的进程。在secound窗体上还有一个注销按钮,若我单击该按钮,它将隐藏secound窗体,并显示第一个(登录)窗体,若我关闭它,进程仍在后台运行。 当通过X按钮关闭应用程序时,如何停止进程在后台运行? 我在搜索,但找不到解决问题的

我是C#的初学者,我正在尝试制作WFA应用程序。但有一个问题。当我运行它时,它会显示第一个(登录)表单,如果我在未登录的情况下关闭它,它会正常工作,但当我登录时,第一个表单会隐藏,第二个表单会显示,如果我单击X按钮关闭它,表单会消失,但我可以在任务管理器中看到正在运行的进程。在secound窗体上还有一个注销按钮,若我单击该按钮,它将隐藏secound窗体,并显示第一个(登录)窗体,若我关闭它,进程仍在后台运行。 当通过X按钮关闭应用程序时,如何停止进程在后台运行? 我在搜索,但找不到解决问题的方法。(我找到了一些可以附加到进程的东西,可以看到线程,但是线程太多了)

有创建表单和隐藏表单等的代码:

如果登录frmLogin,则隐藏->显示frmMail
如果注销,frmMail将隐藏->显示frmLogin

如果用户成功登录:

this.Hide();
frmMail f2 = new frmMail();
f2.Show();
如果用户单击“注销”按钮:

我找到了解决办法,如果每个人都有相同的问题,这可能会有所帮助。


对于你的情况,我要做的很简单。 首先,我将覆盖FormClose_事件,类似这样的事件

void Form_FormClosing(object sender, FormClosingEventArgs e)
{
  //And here you can call 
  Application.Exit(); 
  // which this will cause to close everything in your application
  //Also if you want to be more aggressive, there is another option, you can  
  //use, Environment.Exit(1), which will basically kill you process.
}

我希望我的回答能帮助你,祝你有愉快的一天

进程仍在运行,因为启动窗体尚未关闭。它是隐藏的,用户无法用它做任何事情。您似乎还创建了一个新的登录表单,而不是使用现有表单。嗯,这不是做这件事的方法。很多可能的修复,但考虑到,你不必隐藏任何东西,可以简单地关闭一个你不需要的窗口。我将代码(从Chang the way..)粘贴到Program.cs,但我不太确定在frmLogin.cs和frmMail.cs中需要做什么才能使其正常工作。不要调用Hide(),调用Close()。在显示新表单之后。现在很简单。谢谢,就这样。我使用了与此类似的代码,它可以工作!
void Form_FormClosing(object sender, FormClosingEventArgs e)
{
  //And here you can call 
  Application.Exit(); 
  // which this will cause to close everything in your application
  //Also if you want to be more aggressive, there is another option, you can  
  //use, Environment.Exit(1), which will basically kill you process.
}