3

上下文:我正在尝试制作的应用程序最初不显示表单,而只显示一个打开的文件对话框。选择文件后,应用程序可能会退出或打开表单。

调用 Application.Run() 后,我无法关闭我的应用程序。下面的示例不会生成会自行终止的应用程序。

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        var context = new Context();
        Application.Run(context);
        Console.Beep();
    }
}

class Context : ApplicationContext
{
    public Context()
    {
        Application.Exit();
    }
}

附带说明一下,在打开表格之前我需要做哪些准备工作?我是否需要先调用 Application.Run 才能显示表单?

非常感谢!XOXO

4

2 回答 2

3
var context = new Context();

使用此语句,您的应用程序将执行 Application.Exit(); 之后您的语句 Application.Run 执行。这可能是原因

于 2012-04-15T10:27:06.990 回答
1

您可以尝试将退出逻辑移至新方法:

class Context : ApplicationContext 
{ 
  public void Exit() 
  { 
    Application.Exit(); 
  } 
} 

并在需要时Application.Run打电话context.Exit()

原始方法的问题在于您将退出逻辑放在 的构造函数中Context,这意味着每次创建Context对象时,您都有可能退出程序(在您发布的代码的情况下这是确定的)。而是Context捕获所有相关(上下文)信息,并在创建后进行显式方法调用时根据该信息决定退出。

于 2012-04-15T10:43:15.847 回答