上下文:我正在尝试制作的应用程序最初不显示表单,而只显示打开的文件对话框。选择文件后,应用程序可以退出或打开表单。
在调用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
答案 0 :(得分:2)
var context = new Context();
使用此语句,您的应用程序将执行Application.Exit();之后你的语句Application.Run执行。这可能是原因
答案 1 :(得分:1)
您可以尝试将退出逻辑移动到新方法:
class Context : ApplicationContext
{
public void Exit()
{
Application.Exit();
}
}
并在需要时Application.Run
致电context.Exit()
原始方法的问题在于您将退出逻辑放在Context
的构造函数中,这意味着每次创建Context
对象时,您都有可能退出程序(它在您发布的代码的情况下是确定的)。取而代之的是Context
捕获所有相关(上下文)信息,并在创建后进行显式方法调用时根据该信息做出退出决定。