VB.NET: прервать FormClosing()
у меня есть фрагмент кода, который я хочу запустить, когда приложение закрывается. Итак, я использовал FormCLosing
событие. Но теперь я хочу оставить сообщение для подтверждения выхода. Например, если пользователь нажимает "выход" (X
), появится подсказка, если он нажмет нет, то приложение не закроется и не вернется в предыдущее состояние.
теперь я нахожу, что трудно достичь с помощью FormClosing
событие. потому что он будет выполняться независимо от того, какую кнопку пользователь нажимает.
Какое-нибудь средство от этого?
Я имею в виду, я нужно еще как ExitButtonPressed()
..
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
посмотреть
и
CancelEventArgs.Отменить Свойство
событие можно отменить, установив свойство Cancel имеет значение true.
' Button2 и closebutton формы закрывают форму, задавая один и тот же вопрос
Dim button2Yes как Boolean = False Частный суб Button2_Click (отправитель как объект, e Как EventArgs) обрабатывает Button2.Нажмите
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