C#表单没有关闭

时间:2014-08-10 10:09:07

标签: c# winforms

在我的Windows窗体中,即使执行this.Close();

,应用程序也不会退出
private void exitButton_Click(object sender, EventArgs e)
{
    this.Close();
}

如果我尝试直接处理它就会崩溃。

在我的主课程中,我打开一个实例,这就是我试图关闭的实例。在它没有想要关闭之前,它没有打开。

这不是我的主要课程。

FIX:替换" show()"与" showDialog()"修好了。

2 个答案:

答案 0 :(得分:1)

Remarks from Form.Close()

  

当表单关闭时,在对象中创建的所有资源都是   关闭,表格处理。您可以阻止关闭表单   在运行时通过处理Closing事件并设置Cancel   CancelEventArgs的属性作为参数传递给您的事件   处理程序。如果您要关闭的表单是您的启动表单   申请,你的申请结束。

     

表单未在关闭时处理的两个条件是(1)它   是多文档界面(MDI)应用程序的一部分,而且是   形式不可见; (2)您已使用表格显示   ShowDialog的。在这些情况下,您需要手动调用Dispose   标记所有表单的垃圾收集控件。 NoteNote

     

在显示为无模式的表单上调用Close方法时   窗口,你不能调用Show方法使表单可见,   因为表格的资源已经发布。隐藏一个   使用Control.Hide方法然后使其可见。警告   noteCaution

     

在.NET Framework 2.0之前,Form.Closed和Form.Closing   调用Application.Exit方法时不会引发事件   退出你的申请。如果您在其中任何一个中都有验证码   必须执行的事件,您应该调用Form.Close方法   在调用Exit方法之前单独打开每个打开的表单。

这清楚地表明表单应该关闭,应用程序应该结束,除非你做了我们在你的例子中看不到的其他内容。

答案 1 :(得分:0)

Close方法是Form方法,它会关闭表单,而关闭Application代替:

// Close everything down.
Application.Exit();

正如您所看到的Application类没有Close方法,它有一个Exit方法,this.Close()关闭相关的Form,但保持应用程序运行。