J'ai une boîte de message avec les boutons YesNoCancel
...
Yes
pour effectuer une action et fermer l’application - fonctionne bienNo
ne fera rien et fermera l'application - (voir ci-dessous)Cancel
ne fera rien et gardera l'application ouverte - (voir ci-dessous).J'utilise DialogResult.No
pour le No bouton et DialogResult.Cancel
pour le Cancel bouton. Mais appuyer sur l'un d'eux déclenche DialogResult.Cancel
un événement. Quel est le problème?
Cela devrait bien fonctionner:
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
Je vois toutes les réponses sont correctes. Je veux juste écrire un petit morceau de code différent. À mon avis, vous pouvez le faire sans utiliser une variable supplémentaire pour enregistrer le résultat de la boîte de dialogue. Regarde:
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
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;
}
Utilisation:
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
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
Alerte de fermeture de conformation:
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
Juste pour ajouter un peu à l'exemple de Darin, ce qui suit montre une icône avec les cases. 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
J'utilise une invite oui/non comme suit:
If MsgBox("Are you sure?", MsgBoxStyle.YesNo) <> MsgBoxResults.Yes Then
Exit Sub
End If
Voici comment vous pouvez le faire sans un Dim
, en utilisant MessageBox.Show
au lieu de MsgBox
. C'est à mon avis la manière la plus propre de l'écrire!
Select Case MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo)
Case vbYes
' Other Code goes here
Case vbNo
' Other Code goes here
End Select
Vous pouvez le raccourcir encore davantage en utilisant If
:
If MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo) = vbYes Then
' Other Code goes here
End If