50 Stimmen

MessageBox mit YesNoCancel - Nein & Abbrechen löst das gleiche Ereignis aus

Ich habe ein Nachrichtenfeld mit der YesNoCancel Knöpfe...

  • Drücken Sie Yes führt eine Aktion aus und schließt die Anwendung - funktioniert einwandfrei
  • Drücken Sie No tut nichts und schließt die Anwendung - (siehe unten)
  • Drücken Sie Cancel bewirkt nichts und lässt die Anwendung geöffnet - (siehe unten).

Ich benutze DialogResult.No für die No Taste und DialogResult.Cancel für die Cancel Schaltfläche. Aber das Drücken einer der beiden Tasten löst aus DialogResult.Cancel Veranstaltung. Wo liegt das Problem?

134voto

Darin Dimitrov Punkte 990883

Das sollte gut funktionieren:

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

36voto

Orlando Herrera Punkte 3357

Ich sehe, dass alle Antworten richtig sind. Ich möchte nur ein etwas anderes Stück Code schreiben. Meiner Meinung nach können Sie es tun ohne eine zusätzliche Variable zu verwenden, um das Ergebnis der Dialogbox zu speichern . Werfen Sie einen Blick darauf:

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;
        }

3voto

David Kittell Punkte 141

Um das Beispiel von Darin noch ein wenig zu ergänzen, wird unten 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

3voto

yousafkamal Punkte 31
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

3voto

Prashant Koli Punkte 31

Verwendung:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X