MessageBox with YesNoCancel - No&Cancel触发相同的事件

Bib*_*ath 44 vb.net messagebox button

我有一个带YesNoCancel按钮的消息框......

  • 按下Yes将执行一些操作并关闭应用程序 - 工作正常
  • 按下No将无效并关闭应用程序 - (见下文)
  • 按下Cancel将不执行任何操作并保持应用程序打开 - (见下文).

我使用DialogResult.NoNo按钮,并DialogResult.CancelCancel按钮.但按其中任何一个都会触发DialogResult.Cancel事件.有什么问题?

Dar*_*rov 115

这应该工作正常:

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
Run Code Online (Sandbox Code Playgroud)


Orl*_*era 32

我看到所有答案都是正确的.我只想写一些不同的代码.在我看来,你可以不使用额外的变量来保存dialogBox的结果.看一看:

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
Run Code Online (Sandbox Code Playgroud)

C#代码

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;
        }
Run Code Online (Sandbox Code Playgroud)