Show(),ShowDialog()和Application.Run()函数有什么区别?

时间:2013-12-31 14:54:07

标签: c# winforms

新的Show(),ShowDialog()和Application.Run()函数有什么区别? 在main(winforms)中,我看到了:

Application.Run(new Form1());

然后,对于Form1,我还看到了Form1.Show()的描述:“向用户显示控件。” 对于ShowDialog,它说“将表单显示为模式对话框”。

这是什么意思?

它们的用途是什么,哪种最常见?

3 个答案:

答案 0 :(得分:67)

Show函数以非模态形式显示表单。这意味着您可以单击父表单。

ShowDialog以模态方式显示表单,这意味着您无法转到父表单

Application.Run()运行主父表单,并使该表单成为主表单。 Application.Run()通常位于main

答案 1 :(得分:9)

  • Show以非模态方式显示表单。
  • ShowDialogmodal方式显示表单。
  • Application.Run启动应用程序的消息循环,并将表单显示为应用程序的主要表单

答案 2 :(得分:5)

Application.Run()启动Windows窗体应用程序的消息循环。在最基本的层面上,它使过程保持活着,直到最后一个表格关闭。

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.run(v=vs.110).aspx

Show()方法显示处于非模态状态的窗体。

http://msdn.microsoft.com/en-us/library/szcefbbd(v=vs.110).aspx

ShowDialog()方法显示一个处于模态状态的窗口,并停止执行调用上下文,直到从该方法打开的窗体返回结果。

http://msdn.microsoft.com/en-us/library/c7ykbedk(v=vs.110).aspx