栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Application.Run()和Form.ShowDialog()有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Application.Run()和Form.ShowDialog()有什么区别?

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
如果登录成功,则在关闭事件中打开一个实例。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/405394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号