Определите, как приложение закрыто - PullRequest
3 голосов
/ 19 марта 2010

Я пытаюсь определить, закрыто ли мое приложение, нажав «X» в форме окон, или они нажали кнопку «Выход», которая у меня есть на нем. Прямо сейчас я использую StackTrace.GetFrame (someIndex), чтобы определить, как, но я ищу более точный способ, поскольку похоже, что эти порядки кадров не гарантированы. Есть ли лучший способ провести различие? Это WinNET для .NET 3.5, и я пишу на C #.

Ответы [ 2 ]

4 голосов
/ 19 марта 2010

Используйте другое событие для обработки вашего собственного нажатия кнопки «Выход». В своем собственном обработчике события «Выход» выполните дополнительную логику или установите некоторую переменную состояния, а затем вызовите обычный метод закрытия приложения.

Опубликуйте несколько примеров того, как ваши события связаны, и я приведу более конкретный пример. В целом это будет выглядеть примерно так:

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 голосов
/ 19 марта 2010

Используйте событие FormClosing и запросите FormClosingEventArgs для значения перечисления CloseReason.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...