我有一个模式窗体(登录),我想要关闭它使用“X”按钮,强制应用程序退出。 我尝试这样做:正在按下表格的X按钮退出应用程序
private void Login_Deactivate(object sender, EventArgs e)
{
Application.Exit();
}
这导致我的应用程序退出上按下登录按钮(关闭)。但我只想在窗口的“X”按钮上退出。 我该怎么办?
我有一个模式窗体(登录),我想要关闭它使用“X”按钮,强制应用程序退出。 我尝试这样做:正在按下表格的X按钮退出应用程序
private void Login_Deactivate(object sender, EventArgs e)
{
Application.Exit();
}
这导致我的应用程序退出上按下登录按钮(关闭)。但我只想在窗口的“X”按钮上退出。 我该怎么办?
摆脱Deactivate
事件,你不需要它。
这里的问题是,你不能说只是“X”按钮被按下。你真正要做的是跟踪所有导致形式关闭的其他条件,并在而不是之一作出反应。
您应该利用DialogResult
枚举,并允许调用应用程序作出反应,而不是试图在登录表单中完成所有操作。为 “OK”,设置属性
public Login()
{
DialogResult = DialogResult.None;
}
然后,在你的按钮处理程序:DialogResult = DialogResult.OK
在你的登录表单构造,该属性设置为None
。
如果您有特定的取消事件,您可以设置DialogResult = DialogResult.Cancel
。
最终,您可以在登录表单中有一个FormClosing
事件,您可以在其中检查该值并作出反应。但更重要的是,您的调用应用程序可以检查登录表单的结果,并在那里做出反应。
我认为你应该使用this.Parent.Application.Exit()
,它杀死了整个应用程序。
而不是停用事件,请订阅“登录”表单的“FormClosing
”事件。写下你写的相同的代码。 只有在单击外部登录表单时需要关闭应用程序时,才能保留Deactivate
事件。
这没有帮助。你仍然不知道它是如何结束的,这就是这个问题的关键。 – DonBoitnott
什么是'Login_Deactivate'?这种方法在登录表单或其他地方在哪里?谁/什么叫它? – DonBoitnott
@DonBoitnott它是停用我的登录模式形式的事件 –
什么触发此事件触发? – DonBoitnott