【问题标题】:What's the difference between Show(), ShowDialog() and Application.Run() functions? [duplicate]Show()、ShowDialog() 和 Application.Run() 函数有什么区别? [复制]
【发布时间】:2018-10-19 04:42:46
【问题描述】:

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

Application.Run(new Form1());

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

这是什么意思?

它们各自的用途是什么,最常见的是什么?

【问题讨论】:

  • 试一试并找出...,并查看每个功能的文档。
  • @Servy 那条评论比这条评论更没用。
  • @Servy 我猜你采取了防御措施,而不是评估为什么你的 cmets 没用。请允许我解释一下:它没有用,因为它用“只是查找它”来回答问题,这正是有人在访问此页面并阅读您的评论时试图做的事情。
  • @SchizoidSpag 知道所有信息都在文档中,他们很容易获得这些信息,这有什么用?整个问题本身是无用的,因为它所做的只是对已经很容易获得的信息提供一个非常糟糕的总结。它不应该存在,以免人们在搜索此信息时发现它;他们应该只是查看文档。
  • @Servy 你说得对,阅读 888 个单词的文档并从中推断出答案比阅读 53 个单词的选定答案要高效得多。太糟糕了,你没有把你的评论作为答案,所以我们其他人可以通过投票来表达我们对它的赞赏。

标签: c# winforms


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:
    • Show 以非模态方式显示表单。
    • ShowDialogmodal 的方式显示表单。
    • Application.Run 为应用程序启动一个消息循环并将表单显示为应用程序的主表单

    【讨论】:

      【解决方案3】:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 2019-01-17
        • 2012-05-10
        相关资源
        最近更新 更多