Application.Exit after Application.Run 不起作用

本文关键字:Application 不起作用 Run after Exit | 更新日期: 2023-09-27 18:31:05

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

我在调用 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 才能显示表单?

谢谢一堆!索克索

Application.Exit after Application.Run 不起作用

var context = new Context();

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

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

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

并在需要时Application.Run呼叫context.Exit()

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