#vb.net #winforms
#vb.net #winforms
Вопрос:
Я использовал приведенный ниже код, но он не показывает msgbox. Что не так с этим кодом?
Private Sub frmSimple_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
Dim result = MsgBox("Are you sure you want to Exit ?", vbYesNo)
If result = DialogResult.Yes Then
me.Close()
End If
End Sub
Ответ №1:
Этот код выполняется после закрытия формы, когда она утилизируется.
В зависимости от того, как вы показываете форму, она может вообще не удаляться.
Вам нужно обработать FormClosing
событие и установить e.Cancel
значение True
, если вы хотите отменить закрытие.
Комментарии:
1.
If result = DialogResult.No Then e.Cancel = True
2. щелкните свою форму, затем на панели свойств выберите события, а затем дважды щелкните событие закрытия формы. это предложит вам добавить код во время закрытия вашей формы … и здесь вы добавляете свой код
3. Получаю сообщение об ошибке: ‘Cancel’ не является членом ‘System. Windows. Формы. FormClosedEventArgs’
4. Извините, не заметил этого. Работает как шарм: D
Ответ №2:
Private Sub frmProgramma_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If MessageBox.Show("Are you sur to close this application?", "Close", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
Else
e.Cancel = True
End If
End Sub
или именно так я использую его каждый раз снова и снова…
Ответ №3:
Используйте FormClosing
событие. MSDN
Ответ №4:
Dim result = MsgBox("Are you sure you want to Exit ?", vbYesNo)
If result = vbYes Then
me.Close()
End If
Ответ №5:
If MessageBox.Show("¿Exit?", "Application, MessageBoxButtons.YesNo, _
MessageBoxIcon.Question) = DialogResult.No Then
e.Cancel = True
End If
Ответ №6:
Я думаю, что это более чисто и просто!
If MsgBox("Are you sure you want to Exit ?", vbYesNo) = vbNo Then e.Cancel = True
Ответ №7:
Этот код может быть «неэффективным», но позволяет пользователю сохранить свою работу перед закрытием, закрыть форму, если он нажмет «Нет», или вернуться обратно к форме без закрытия, если он нажмет «Отмена».
Dim dialog As DialogResult
dialog = MessageBox.Show("Save before closing?", "Exit", MessageBoxButtons.YesNoCancel)
If dialog = DialogResult.Yes Then
'Put a save file dialog here or Button.PerformClick() if you already have a save button programmed
ElseIf dialog = DialogResult.No Then
Application.Exit()
ElseIf dialog = DialogResult.Cancel Then
e.Cancel = True
End If