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