在C#Winforms应用程序中调用Application.Run有什么好处?

时间:2015-08-10 15:47:05

标签: c# .net winforms

我正在设计一组顺序模态对话框。以下代码似乎可以正常工作,没有任何问题。通过创建自定义ApplicationContext并将其传递给Application.Run,​​或者将最后一个模式对话框传递给Application.Run而不是调用ShowDialog,我将获得什么? (编辑:显然调用Application.Run(...)将替换Application.Exit())

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form1 f = new Form1();
        f.ShowDialog(); //Show a modal dialog
        Form1 f2 = new Form1();
        f2.ShowDialog(); //Chain another modal dialog
        Application.Exit();
    }

1 个答案:

答案 0 :(得分:1)

不,如果你想以这种方式构建你的程序,那么调用Application.Run()是没有意义的。调用Application.Exit()时没有意义,它已经在Main()方法结束时终止。

Form.ShowDialog()方法已经在引擎盖下调用了Application.Run()。对话框变为模态的基本方式以及为什么您的代码不会立即恢复到ShowDialog()之后的下一个语句。就像使用Show()时一样。直到该调度程序循环结束,通过关闭表单或设置DialogResult属性来触发。

通常通过检查ShowDialog()返回值来测试通常需要测试的内容。现在,当第一个窗口出现时,用户没有好办法结束你的应用程序,这可能会让人很困惑。