I have a message box with the YesNoCancel
buttons...
Yes
will do some action and close the application - works fineNo
will do nothing and close the application - (see below)Cancel
will do nothing and keep the application open - (see below).I'm using DialogResult.No
for the No button and DialogResult.Cancel
for the Cancel button. But pressing either of them triggers DialogResult.Cancel
event. What's the problem?
This question is related to
vb.net
button
messagebox
Closing conformation alert:
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
Just to add a bit to Darin's example, the below will show an icon with the boxes. 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
The way I use a yes/no prompt is:
If MsgBox("Are you sure?", MsgBoxStyle.YesNo) <> MsgBoxResults.Yes Then
Exit Sub
End If
Use:
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
I see all the answers are correct. I just want to write a little different piece of code. In my opinion, you may do it without using an extra variable to save the result of the dialogBox. Take a look:
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;
}
Try this
MsgBox("Are you sure want to Exit", MsgBoxStyle.YesNo, "")
If True Then
End
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
This is how you can do it without a Dim
, using MessageBox.Show
instead of MsgBox
. This is in my opinion the cleanest way of writing it!
Select Case MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo)
Case vbYes
' Other Code goes here
Case vbNo
' Other Code goes here
End Select
You can shorten it down even further by using If
:
If MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo) = vbYes Then
' Other Code goes here
End If
Source: Stackoverflow.com