按下表格的X按钮退出应用程序

时间:2014-05-23 11:01:32

标签: c# .net winforms modal-dialog exit

我有一个模态形式(登录),我希望在关闭它时使用" X"按钮,强制应用程序退出。 我试过这个:

enter image description here

private void Login_Deactivate(object sender, EventArgs e)
{
    Application.Exit();
}

这导致我的应用程序在按下登录按钮(关闭)时退出。但我只想退出" X"窗口按钮。 我该怎么办?

3 个答案:

答案 0 :(得分:1)

摆脱Deactivate事件,你不需要它。

这里的问题是你不能说按下了“X”按钮。你真正做的是跟踪导致表格关闭的所有其他条件,并在其中一个时做出反应。

您应该利用DialogResult枚举,并允许调用应用程序做出反应,而不是尝试在登录表单中完成所有操作。

在您的登录表单构造函数中,将该属性设置为None

public Login()
{
    DialogResult = DialogResult.None;
}

然后,在“OK”的按钮处理程序中,设置属性:DialogResult = DialogResult.OK

如果您有特定的取消事件,则可以设置DialogResult = DialogResult.Cancel

最终,您可以在“登录”表单中有一个FormClosing事件,您可以在其中检查此值并做出反应。但更重要的是,您的调用应用程序可以从登录表单中检查结果并在那里做出反应。

答案 1 :(得分:0)

我认为你应该使用this.Parent.Application.Exit(),它会杀死整个应用程序。

答案 2 :(得分:0)

订阅“登录”表单的“FormClosing”事件,而不是停用事件。写下您编写的相同代码。 仅当您单击外部登录表单时需要关闭应用程序时,才保留Deactivate事件。