VB.NET: Прервать закрытие формы ()

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

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

То есть мне нужен даже лайк ExitButtonPressed() ..


person Bibhas Debnath    schedule 13.02.2010    source источник


Ответы (2)


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

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

И

Свойство CancelEventArgs.Cancel

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

person Adriaan Stander    schedule 13.02.2010
comment
Внутри события FormClosing. - person Aseem Gautam; 13.02.2010
comment
Спасибо. но теперь у меня другая проблема. stackoverflow.com/questions/2256909/ - person Bibhas Debnath; 13.02.2010

'Button2 и closebutton формы закрывают форму, задав один и тот же' вопрос

Dim button2 Да Как Boolean = False Private Sub 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
person Ali Ozger    schedule 19.11.2017