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 才能显示表单?
谢谢一堆!索克索
var context = new Context();
使用此语句,您的应用程序将执行 Application.Exit();之后执行您的语句 Application.Run。这可能是原因
您可以尝试将退出逻辑移动到新方法:
class Context : ApplicationContext
{
public void Exit()
{
Application.Exit();
}
}
并在需要时Application.Run
呼叫context.Exit()
原始方法的问题在于您将退出逻辑放在 Context
的构造函数中,这意味着每次创建Context
对象时,您都有可能退出程序(在您发布的代码的情况下,这是肯定的)。 相反,Context
捕获所有相关(上下文)信息,并在创建显式方法调用后根据该信息做出退出的决定。