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

Edw*_*rak 40 c# winforms

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

Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud)

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

这是什么意思?

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

Edw*_*rak 75

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

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

Application.Run()运行主父窗体,并使该窗体成为主窗体.Application.Run()通常在main.


Tho*_*que 11

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


Aus*_*tin 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