2010-03-19 97 views
3

我试图通过单击窗体上的“X”来确定我的应用程序是否关闭,或者他们单击了“退出”按钮。现在我正在使用StackTrace.GetFrame(someIndex)来确定如何,但我正在寻找一个更明确的方式,因为它看起来像这些框架订单arent保证。有没有更好的方式来作出区分?这是一个.NET 3.5 WinForm,并用Im编写。确定应用程序如何关闭

回答

4

使用其他事件来处理您自己的“退出”按钮单击。在您自己的“退出”事件处理程序中执行您的额外逻辑,或设置某个状态变量,然后调用常规应用程序关闭方法。

发布你的事件如何连线的一些样本,我得到一个更具体的例子。一般来说,它看起来像这样:

private void btnMyExit_Click(object sender, EventArgs e) 
{ 
    // TODO: add any special logic you want to execute when they click your own "Exit" button 
    doCustomExitWork(); 
} 

public static void OnAppExit(object sender, EventArgs e) 
{ 
    doCustomExitWork(); 
} 

private void doCustomExitWork() 
{ 
    // TODO: add any logic you want to always do when exiting the app, omit this whole method if you don't need it 
} 
+0

雅,不同的事件是我在想什么,但是这是一个更高级开发人员离开代码和我挽着他的代码为“正确的方式” – 2010-03-19 19:32:08

0

使用FormClosing事件并查询FormClosingEventArgs以获取枚举CloseReason值。

+0

不幸单击窗体处的X,然后点击一个按钮退出应用程序都有相同的枚举 – 2010-03-19 19:38:51

+0

@Mike_G - 没有仔细阅读你的问题。现在我很好奇它有什么不同? – jac 2010-03-19 20:07:06

+0

你的意思是为什么我们想知道他们如何关闭它?我们正在尝试仿效MSN messenger的“最小化X点击”。 – 2010-03-19 20:25:03