Предотвращение закрытия окон с помощью опции ОТМЕНА C # - PullRequest
1 голос
/ 23 июня 2011

Я пытаюсь включить в свое приложение Windows Form приложение, которое, когда пользователь пытается закрыть окна, открывает диалоговое окно с параметром ОТМЕНА .... это офисное классическое.

В других темах люди описывают, как предотвратить закрытие окон. Они используют диалоговое окно для этого. Это помогает, но если пользователь немедленно нажимает на любой параметр в этом поле, Windows закрывает приложение.

Вы можете понять, что я имею в виду, выполнив следующий тест:

В Windows Vista или 7 Откройте Paint, Word или любой офисный софт и начните писать что-нибудь. Не сохраняйте его.

Попробуйте закрыть окна, и когда появится классическое диалоговое окно сохранения НЕМЕДЛЕННО нажмите «Отмена».

Вы увидите, что приложение продолжает работать, и Windows спрашивает вас, что вы хотите сделать.

Я пытался следовать этому Microsoft Link , но если я нажимаю "ОК" в окне сообщений, приложение закрывается.

Ответы [ 2 ]

4 голосов
/ 23 июня 2011
   private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason.Equals(CloseReason.WindowsShutDown))
        {
           if (MessageBox.Show("You are closing this app.\n\nAre you sure you wish to exit ?", "Warning: Not Submitted", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop) == DialogResult.Yes)
               return;    
           else    
               e.Cancel = true;
        }
    }
0 голосов
/ 12 мая 2014

Хотя задержка выключения окон не рекомендуется, это возможно с помощью сценариев выключения.Вы можете настроить свой собственный файл сценария с помощью файла конфигурации gpedit.msc.Я читал, что эти сценарии могут задерживать выключение окон до 10 минут.

Надеюсь, это поможет

...