我是C#的初学者,我试图让WFA应用程序。但是有一个问题。当我运行它,它显示第一(登录)窗体,如果我没有登录关闭它,它会正常工作,但是当我登录,第一次形成隐藏,secound窗体显示,如果我通过单击X按钮关闭窗体消失了,但我可以看到进程在任务管理器中运行。在secound窗体上也是注销按钮,如果我点击按钮,它隐藏了secound窗体,并显示第一个(登录)窗体,如果我关闭它,仍然在后台运行。 当通过X按钮关闭应用程序时,如何停止进程在后台运行? 我正在寻找,但我找不到解决方案,我的问题。 (我发现了一些附加处理,看看线程,但有太多的)关闭应用程序后继续进程c#
有代码,其中表单创建墙根等:
如果frmLogin登录隐藏 - >显示frmMail
如果注销frmMail隐藏 - >显示frmLogin。
如果用户成功登录:
this.Hide();
frmMail f2 = new frmMail();
f2.Show();
如果用户点击 “退出” 按钮:
this.Hide();
frmLogin f1 = new frmLogin();
f1.Show();
我找到了解决办法,如果每个人都有同样的问题,这可能会有帮助。 How to switch between forms without creating new instance of forms?
How do I prevent the app from terminating when I close the startup form?
该进程仍在运行,因为启动窗体尚未关闭。它是隐藏的,用户无法用它做任何事情。您似乎也创建了一个新的登录表单,而不是使用现有的登录表单。那么,那不是做这件事的方法。很多可能的修复,但考虑[改变你的应用程序终止的方式](http://stackoverflow.com/a/10769349/17034),所以你不必隐藏任何东西,只需关闭你不需要的窗口。 –
@HansPassant现在我知道了。我把这些代码粘贴到了Program.cs中,但我不确定我需要在frmLogin.cs和frmMail.cs中做些什么才能使其工作。 – belmo
不要调用Hide(),调用Close()。展示新表单后。现在很简单。 –