it-swarm.com.de

MessageBox mit YesNoCancel - No & Cancel löst dasselbe Ereignis aus

Ich habe ein Meldungsfeld mit den Schaltflächen YesNoCancel ...

  • Drücken Sie Yes, um eine Aktion auszuführen und die Anwendung zu schließen - funktioniert einwandfrei
  • Drücken Sie No, um die Anwendung zu schließen (siehe unten).
  • Durch Drücken von Cancel wird nichts unternommen und die Anwendung bleibt geöffnet (siehe unten).

Ich benutze DialogResult.No für die No Taste und DialogResult.Cancel für die Cancel Taste. Aber wenn Sie eine der beiden Tasten drücken, wird DialogResult.Cancel Veranstaltung. Was ist das Problem?

44
Bibhas Debnath

Dies sollte gut funktionieren:

Dim result As Integer = 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
111
Darin Dimitrov

Ich sehe, dass alle Antworten richtig sind. Ich möchte nur einen etwas anderen Code schreiben. Meiner Meinung nach können Sie es tun ohne eine zusätzliche Variable zu verwenden, um das Ergebnis der Dialogbox zu speichern. Schau mal:

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;
        }
32
Orlando Herrera

Verwenden:

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
3
Prashant Koli
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
3
yousafkamal

Bestätigungsmeldung schließen:

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
2
Suji

Um Darins Beispiel ein wenig zu ergänzen, wird im Folgenden ein Symbol mit den Kästchen angezeigt. 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
2
David Kittell

Die Art, wie ich eine Ja/Nein-Eingabeaufforderung verwende, ist:

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

So geht das ohne Dim mit MessageBox.Show anstelle von MsgBox. Dies ist meiner Meinung nach die sauberste Art, es zu schreiben!

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

Sie können es mit If noch weiter kürzen:

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