【问题标题】:Difference between Application.Run() and ShowDialog()? [duplicate]Application.Run() 和 ShowDialog() 之间的区别? [复制]
【发布时间】:2013-08-20 13:43:47
【问题描述】:

我正在开发一个简单的 Winform 应用程序,作为第一次尝试使用 MVP 模式。我已经习惯了用于启动表单的标准自动生成代码,即Application.Run(new Form1()); 我正在查看的 MVP 示例项目在Program.cs 中做了很多工作,但基本部分是这样的:

TestView view = new TestView();
TestPresenter presenter = new TestPresenter(view);
presenter.LoadView();
view.ShowDialog();

据我了解,ShowDialog 方法类似于Application.Run,因为它为对象创建了一个消息循环,因此它的功能应该与以Run 开头的表单相同。

我的问题是:Application.Run()Show.Dialog() 之间是否存在显着差异,这将决定在这种情况下使用一个而不是另一个?据我所知,测试应用程序的运行方式并没有什么不同,但我知道这对于软件来说意义不大。

【问题讨论】:

  • @Jonesy:天哪,我发誓我几乎搜索了准确的措辞,但一无所获>
  • C# 标签有超过 50 万个问题,现在几乎所有内容都是重复的。
  • 当我输入标题时,另一个问题没有出现在小下拉列表中,这让我感到特别奇怪。另一个问题中的一个答案给了我我需要知道的东西。

标签: c# winforms mvp


【解决方案1】:

Application.Run 用于统计 first 表单。在第一个表单之后,您应该使用Form.Show()Form.ShowDialog() 两者之间的主要区别在于ShowDialog() 以模态方式启动表单,这意味着在该表单关闭之前您不能切换到其他表单(类似于@987654325 @)

【讨论】:

  • 第一个表单也可以使用 ShowDialog。 OP 想知道在这种情况下有什么区别,而不是为了以下形式。
猜你喜欢
  • 1970-01-01
  • 2014-11-01
  • 2013-07-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
相关资源
最近更新 更多