Закрытие форм без всплывающих окон (блокирование всплывающих окон и принудительное закрытие других форм) при выходе из главной формы - PullRequest
0 голосов
/ 31 января 2012

Пожалуйста, примите мои извинения, если этот вопрос повторяется.Я искал существующие вопросы и решения и не нашел точного решения своей проблемы.

Я занимаюсь разработкой приложения winform, у меня есть основная форма1, которая создает форму2.Form2 имеет кнопку закрытия и переопределенный метод FormClosing (), чтобы получить всплывающее окно подтверждения, которое работает отлично.

Когда я хочу закрыть форму Form1 (которая является основным потоком приложения) и хочу закрыть все другие формы, скажем, form2, form3, которые были созданы form1, без запроса всплывающих окон подтверждения для form2, form3.В основном, когда закрывается форма 1, он должен принудительно закрыть все другие формы, которые были показаны в форме 1, прямо сейчас он показывает все всплывающие окна с подтверждением для формы 2, формы 3 перед выходом из приложения.

Благодарю за ответ, с уважением, skm

1 Ответ

1 голос
/ 31 января 2012

Вам нужно будет обратить внимание на значение свойства e.CloseReason, которое передается вам в событии FormClosing.Запрашивать только у пользователя, если e.CloseReason == CloseReason.UserClosing.Это также гарантирует, что вы не отобразите диалоговое окно, когда пользователь выключает Windows.Например:

    private void Form2_FormClosing(object sender, FormClosingEventArgs e) {
        if (e.CloseReason == CloseReason.UserClosing && !saved) {
            switch (MessageBox.Show(this, "Save changes?", "Closing",
                    MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)) {
                case DialogResult.Yes: Save(); break;
                case DialogResult.No: break;
                case DialogResult.Cancel: e.Cancel = true;
            }
        }
    }

Do всегда сохраняйте изменения, чтобы пользователь не пострадал от непредвиденной потери данных.Скажите временному файлу, который вы заново открываете при запуске программы.

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