C# - 手动关闭表单应用程序

时间:2016-02-27 09:29:13

标签: c# winforms

我想知道完全终止Forms应用程序的适当方法。我使用代码以标准方式打开表单:

namespace History
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new DisplayHistory());
        }
    }
}

...这里是DisplayHistory函数的准系统版本,其中包含我尝试终止应用程序注释掉的各种内容。前两个导致未处理的异常,表明我无法访问已处置的对象。第三个根本没有效果,第四个根本没有编译,因为我得到一个错误,说"应用程序不包含Current"的定义:

public DisplayHistory()
{
    InitializeComponent();

//    this.Close();
//    Close();
//    Application.Exit();
//    Application.Current.Shutdown();
}

1 个答案:

答案 0 :(得分:2)

不要试图在构造函数中关闭它,最好不要打开表单。

但是如果您真的想根据某些条件在构造函数中关闭表单,可以在代码中Load之前订阅InitializeComponent事件,并使用this.Close()关闭表单 :

public Form1()
{
    if (some criteria)
    {
        this.Load += (sender, e) => { this.Close(); };
    }
    return;

    InitializeComponent();
}

要正常关闭应用程序,除了构造函数之外,您可以在以下任何地方调用代码:

  • this.Close();
  • Application.Exit();

要强制应用程序停止或异常关闭,您可以在任何地方调用Environment.Exit,包括表单构造函数:

  • Environment.Exit(1);