MessageBox met YesNoCancel – Nee & Annuleren activeert dezelfde gebeurtenis

Ik heb een berichtvenster met de YesNoCancel-knoppen…

  • Druk op Yeszal enige actie uitvoeren en de applicatie sluiten – werkt prima
  • Druk op Nozal niets doen en de applicatie sluiten – (zie hieronder)
  • Druk op Cancelzal niets doen en de applicatie open houden – (zie hieronder).

Ik gebruik DialogResult.Novoor de knop Noen DialogResult.Cancelvoor de knop Annuleren. Maar als u op een van beide drukt, wordt de gebeurtenis DialogResult.Cancelgeactiveerd. Wat is het probleem?


Antwoord 1, autoriteit 100%

Dit zou goed moeten werken:

Dim result As DialogResult = MessageBox.Show("message", "caption", MessageBoxButtons.YesNoCancel)
If result = DialogResult.Cancel Then
    MessageBox.Show("Cancel pressed")
ElseIf result = DialogResult.No Then
    MessageBox.Show("No pressed")
ElseIf result = DialogResult.Yes Then
    MessageBox.Show("Yes pressed")
End If

Antwoord 2, autoriteit 27%

Ik zie dat alle antwoorden correct zijn. Ik wil gewoon een iets ander stukje code schrijven. Naar mijn mening kun je het doen zonder een extra variabele te gebruiken om het resultaat van de dialogBox op te slaan. Kijk eens:

VB-code

Select Case MsgBox("Your Message", MsgBoxStyle.YesNoCancel, "caption")
                    Case MsgBoxResult.Yes
                        MessageBox.Show("Yes button")
                    Case MsgBoxResult.Cancel
                        MessageBox.Show("Cancel button")
                    Case MsgBoxResult.No
                        MessageBox.Show("NO button")
 End Select

C#-code

switch (MessageBox.Show("Message", "caption", MessageBoxButtons.YesNoCancel))
        {
            case DialogResult.Yes: MessageBox.Show("Yes"); break;
            case DialogResult.No: MessageBox.Show("No"); break;
            case DialogResult.Cancel: MessageBox.Show("Cancel");  break;
        }

Antwoord 3, autoriteit 2%

Om iets toe te voegen aan het voorbeeld van Darin, hieronder wordt een pictogram met de vakken weergegeven.
http://msdn. microsoft.com/en-us/library/system.windows.forms.messagebox(v=vs.110).aspx

Dim result = MessageBox.Show("Message To Display", "MessageBox Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
If result = DialogResult.Cancel Then
    MessageBox.Show("Cancel Button Pressed", "MessageBox Title",MessageBoxButtons.OK , MessageBoxIcon.Exclamation)
ElseIf result = DialogResult.No Then
    MessageBox.Show("No Button Pressed", "MessageBox Title", MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf result = DialogResult.Yes Then
    MessageBox.Show("Yes Button Pressed", "MessageBox Title", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

Antwoord 4, autoriteit 2%

dim result as dialogresult
result = MessageBox.Show("message", "caption", MessageBoxButtons.YesNoCancel)
If result = DialogResult.Cancel Then
    MessageBox.Show("Cancel pressed")
ElseIf result = DialogResult.No Then
    MessageBox.Show("No pressed")
ElseIf result = DialogResult.Yes Then
    MessageBox.Show("Yes pressed")
End If

Antwoord 5, autoriteit 2%

Gebruik:

Dim n As String = MsgBox("Do you really want to exit?", MsgBoxStyle.YesNo, "Confirmation Dialog Box")
If n = vbYes Then
    MsgBox("Current Form is closed....")
    Me.Close() 'Current Form Closed
    Yogi_Cottex.Show() 'Form Name.show()
End If

Antwoord 6, autoriteit 2%

Bevestigingswaarschuwing sluiten:

Private Sub cmd_exit_click()
    ' By clicking on the button the MsgBox will appear
    If MsgBox("Are you sure want to exit now?", MsgBoxStyle.YesNo, "closing warning") = MsgBoxResult.Yes Then ' If you select yes in the MsgBox then it will close the window
               Me.Close() ' Close the window
    Else
        ' Will not close the application
    End If
End Sub

Antwoord 7, autoriteit 2%

De manier waarop ik een ja/nee-prompt gebruik is:

If MsgBox("Are you sure?", MsgBoxStyle.YesNo) <> MsgBoxResults.Yes Then
    Exit Sub
End If

Antwoord 8, autoriteit 2%

Dit is hoe je het kunt doen zonder een Dim, door MessageBox.Showte gebruiken in plaats van MsgBox. Dit is naar mijn mening de schoonste manier om het te schrijven!

Select Case MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo)
    Case vbYes
        ' Other Code goes here
    Case vbNo
        ' Other Code goes here
End Select

Je kunt het nog verder inkorten door Ifte gebruiken:

If MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo) = vbYes Then
    ' Other Code goes here
End If

Antwoord 9

Probeer dit

MsgBox("Are you sure want to Exit", MsgBoxStyle.YesNo, "")
                If True Then
                    End
                End If

Other episodes