
Application.Run(Form)在当前线程上启动消息循环并显示指定的形式。消息循环使表单能够接收Windows消息(例如,按键,鼠标单击,绘画无效),以使其显示响应性并与用户进行交互。当你调用
ShowDialog()一个
Form实例,它实际上做了类似的事情,并为在其上形成一个模式消息循环
ShowDialog被调用。
两次调用之间没有太大区别。
Application.Run确实添加了一些额外的事件处理,使您可以在关闭主窗体时整理一些资源(请参阅Application.ThreadExit)。
建议使用WinForms应用程序启动方法
Application.Run,但是我怀疑这更多是一种约定,而不是一条规则。使用最大的理由
Application.Run是,如果您想打开多个非模式表单。您可以使用:
new Form().Show();new Form().Show();Application.Run();
使用该
ShowDialog()方法无法实现此目的,因为其中一种形式必须是模态的。
至于您如何显示登录表单然后如果成功登录则显示主表单的问题,我认为您可以使用:
if (new LoginForm().ShowDialog() == DialogResult.OK){ Application.Run(new MainForm());}另一种方法是自己做管道
MainForm,
LoginForm如果登录成功,则在关闭事件中打开一个实例。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)