确定应用程序的关闭方式

时间:2010-03-19 19:25:09

标签: c# .net winforms

我正在尝试通过单击Windows窗体上的“X”来确定我的应用程序是否已关闭,或者他们是否单击了我的“退出”按钮。现在我正在使用StackTrace.GetFrame(someIndex)来确定如何,但我正在寻找一种更明确的方式,因为看起来这些帧命令并不能保证。有没有更好的方法来区分?这是一个.NET 3.5 WinForm,我用C#编写。

2 个答案:

答案 0 :(得分:4)

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

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

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
}

答案 1 :(得分:0)

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