如何在不关闭完整申请的情况下关闭第一张表格?
可能重复:
如何在不关闭应用程序的情况下关闭登录表单并显示主表单?
如何关闭第一个表格而不关闭完整的申请表?
C#。 例如,如果我的第一个表单是在输入用户名和密码后记录表单,如果它们是正确的,表单应该是关闭的,其他表单需要打开。
我试过this.close()
但我的完整应用程序正在退出:(。之后我尝试了this.Hide()
它可以工作,但我的表单仍然只是从UI隐藏运行。
TY
它实际上非常简单。 在Program.cs上,主静态方法使用以下代码启动LoginForm。
var myLoginForm = new LoginForm(); myLoginForm.Show(); Application.Run();
然后从您的LoginForm中,只需记住在关闭之前启动您的下一个表单,如下所示:
var myNextForm = new NextForm(); myNextForm .Show(); this.Close();
如果您只是想在登录失败后关闭应用程序,请执行以下操作:
this.close(); Application.Exit();
希望能帮助到你!
在Program.cs中,您应该创建一个您希望长时间运行的表单实例,而不仅仅是登录表单。
然后,您可以让另一个表单显示登录表单以从用户那里获取该信息,如果存在,您将返回到其他表单。
那是因为您关闭的窗口是主应用程序的窗口。 关闭该窗口将关闭整个应用程序。
现在这里是修复:
- 例如,创建第二个
Form
LoginForm
- 在主窗体加载事件处理程序(如果没有,添加一个),显示
LoginForm
以要求用户输入他/她的凭据。
检查完这些凭据后,如果凭据良好,您可以从事件处理程序返回,在这种情况下,主窗口将显示,应用程序将正常运行或关闭主窗口,整个应用程序将关闭。
使用表单时,您必须意识到调用Application.Run()
只是将应用程序主线程切换到表单UI线程。 当表单调用Close()时,它将完成它需要执行的任何处理,并从Application.Run()
调用继续。 如果设置了登录表单的某些属性( frmLogin.LoginSuccessful
或其他一些属性Application.Run()
,则在此之后可以执行的操作是在下一个表单上运行另一个Application.Run()
)。
但是,这不是最佳实践(IMO)。 您应该做的是在主表单中打开登录表单,然后在登录表单关闭后主表单将继续运行。
上述就是C#学习教程:如何在不关闭完整申请的情况下关闭第一张表格?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1023719.html