我有一个模态形式(登录),我希望在关闭它时使用" X"按钮,强制应用程序退出。 我试过这个:
private void Login_Deactivate(object sender, EventArgs e)
{
Application.Exit();
}
这导致我的应用程序在按下登录按钮(关闭)时退出。但我只想退出" X"窗口按钮。 我该怎么办?
答案 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
事件。