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