2014-05-23 113 views
0

我有一个模式窗体(登录),我想要关闭它使用“X”按钮,强制应用程序退出。 我尝试这样做:正在按下表格的X按钮退出应用程序

enter image description here

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

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

+0

什么是'Login_Deactivate'?这种方法在登录表单或其他地方在哪里?谁/什么叫它? – DonBoitnott

+0

@DonBoitnott它是停用我的登录模式形式的事件 –

+0

什么触发此事件触发? – DonBoitnott

回答

1

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

这里的问题是,你不能说只是“X”按钮被按下。你真正要做的是跟踪所有导致形式关闭的其他条件,并在而不是之一作出反应。

您应该利用DialogResult枚举,并允许调用应用程序作出反应,而不是试图在登录表单中完成所有操作。为 “OK”,设置属性

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

然后,在你的按钮处理程序:DialogResult = DialogResult.OK

在你的登录表单构造,该属性设置为None

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

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

0

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

+0

我想杀死整个应用程序按“X” –

+0

对不起,我误解了 –

+0

这个问题已经在这个例子中。你并没有提出任何新的建议。 – DonBoitnott

0

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

+0

这没有帮助。你仍然不知道它是如何结束的,这就是这个问题的关键。 – DonBoitnott

相关问题