Підтвердження програми закриття з повідомленням

У мене є вікно повідомлення, яке з'являється, коли я натискаю кнопку закриття, що basilyy говорить: "Ви впевнені, що хочете вийти", але коли я натискаю кнопку немає або скасувати, але програма закриває будь-які

це мій код:

'Close Button
Private Sub BtnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClose.Click

    Dim result = MessageBox.Show(" Are you sure you want to quit", "Are you sure?", MessageBoxButtons.YesNoCancel)
    Me.Close()

End Sub
2
Ви ніколи не перевіряли результат
додано Автор John Saunders, джерело
додано Автор billinkc, джерело

7 Відповіді

Ви нічого не робите зі значенням result . Потрібно перевірити значення і визначити, чи викликати ви Me.Close (). Код приблизно

If result = DialogResult.Yes Then
    Me.Close()
End If
4
додано

Якщо ви використовуєте тоді вікно повідомлень, щоб запобігти випадковому закриттю, ваш підхід може не працювати завжди. Поле повідомлення не буде показано, якщо користувач закриє програму іншим способом, ніж натиснути кнопку "Закрити".

Спробуйте скористатися подією FormClosing.

'Close Button
Private Sub BtnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClose.Click
    Me.Close()
End Sub

'FormClosing Event
Private Sub MyForm_Closing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    If MessageBox.Show(" Are you sure you want to quit", "Are you sure?", MessageBoxButtons.YesNoCancel) <> DialogResult.Yes
         e.Cancel = True
    End If
End Sub
3
додано

You issue Me.Close() no matter what the result is. Check the result and execute Me.Close() only the user clicks Yes

2
додано
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
  If MsgBox("Are you sure you want to quit?", MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton2, "Close application") = Windows.Forms.DialogResult.Yes Then
    Me.Close()
  End If
End Sub
2
додано

Скопіюйте це:

    Dim result = MessageBox.Show(" Are you sure you want to end the Application", "School Management System", MessageBoxButtons.YesNoCancel)
    If result = DialogResult.Yes Then
        Me.Close()
    End If
2
додано
 Dim result = MessageBox.Show(" Are you sure you want to quit", "System Reminder", MessageBoxButtons.YesNo)
    If result = DialogResult.Yes Then
        Me.Close()

    End If
1
додано

Якщо вона є дочірнім, форма відкривається в результаті кнопки в основному вигляді:

Якщо MessageBox.Show ("Ви впевнені, що хочете вийти з програми?", "Вийти?", MessageBoxButtons.YesNo) = DialogResult.Yes Then

Me.Hide (): MainForm.Show ()

    Else
        e.Cancel = True
    End If 
0
додано
Переформатуйте свій код так, щоб він знаходився всередині кодового блоку, і щоб його було накладено належним чином. Додаткову інформацію див. У розділі довідка про редагування .
додано Автор 3D1T0R, джерело
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug