VB.NET: прервать закрытие форм () - PullRequest
8 голосов
/ 13 февраля 2010

У меня есть фрагмент кода, который я хочу запустить, когда приложение закрывается. Итак, я использовал FormCLosing событие. Но теперь я хочу разместить подтверждающее сообщение для выхода. Например, если пользователь нажмет кнопку «Выход» (X), появится подсказка, если он нажмет «НЕТ», приложение не закроется и не вернется в предыдущее состояние.

Теперь мне трудно достичь события FormClosing. потому что он будет выполняться независимо от того, на какую кнопку нажимает пользователь. Любое средство от этого?

Я имею в виду, мне нужно даже как ExitButtonPressed() ..

Ответы [ 2 ]

20 голосов
/ 13 февраля 2010

Вы можете попробовать что-то вроде

Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    If (MessageBox.Show("Close?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No) Then
        e.Cancel = True
    End If
End Sub

Посмотрите на

FormClosingEventArgs Class

И

Свойство CancelEventArgs.Cancel

Событие можно отменить, установив свойство Cancel для true.

0 голосов
/ 19 ноября 2017

Кнопка 2 и кнопка закрытия формы закрывают форму, задавая один и тот же вопрос

Тусклая кнопка2Да как логическое = Ложь Закрытая вложенная кнопка Button2_Click (отправитель как объект, e как EventArgs) обрабатывает Button2.Click

    If MessageBox.Show("    Sure to close?   ", "CLOSING CONTROL", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
        button2Yes = True
        Me.Close()
    Else
        button2Yes = False
    End If
End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Me.FormClosing
    If Not button2Yes Then
        If Not MessageBox.Show("    Sure to close?   ", "CLOSING CONTROL", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
            e.Cancel = True
        End If
    End If
End Sub
...