yesno vbyesno respuesta net msgboxstyle msgboxresult ejemplo vb.net button messagebox

vb.net - vbyesno - MessageBox con YesNoCancel-No & Cancel activa el mismo evento



vb net confirmation dialog (9)

Tengo un cuadro de mensaje con los botones YesNoCancel ...

  • Al presionar Yes se realizará una acción y se cerrará la aplicación, funciona bien
  • Al presionar No no se hará nada y se cerrará la aplicación - (ver a continuación)
  • Al presionar Cancel no hará nada y mantendrá la aplicación abierta - (vea abajo).

Estoy usando DialogResult.No para el botón No y DialogResult.Cancel para el botón Cancelar . Pero presionar cualquiera de ellos desencadena el evento DialogResult.Cancel . ¿Cuál es el problema?


Alerta de conformación de cierre:

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


Así es como puedes hacerlo sin Dim , usando MessageBox.Show lugar de MsgBox . ¡Esta es, en mi opinión, la manera más limpia de escribirlo!

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

Puedes acortarlo aún más usando If :

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


Esto debería funcionar bien:

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


La forma en que uso un indicador de sí / no es:

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


Prueba esto

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


Solo para agregar un poco al ejemplo de Darin, a continuación se mostrará un icono con los cuadros. 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


Utilizar:

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


Veo que todas las respuestas son correctas. Solo quiero escribir una pequeña porción de código. En mi opinión, puede hacerlo sin usar una variable adicional para guardar el resultado de dialogBox . Echar un vistazo:

Código VB

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


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