51

ボタン付きのメッセージボックスがありYesNoCancelます...

  • を押すYesと、何らかのアクションが実行され、アプリケーションが閉じます-正常に動作します
  • を押しNoても何も起こらず、アプリケーションが閉じます-(以下を参照)
  • を押しCancelても何も起こらず、アプリケーションは開いたままになります-(以下を参照)。

私はボタンとボタンに使用DialogResult.Noしています。ただし、いずれかを押すとイベントが発生します。どうしたの?NoDialogResult.CancelCancelDialogResult.Cancel

4

9 に答える 9

132

これは正常に機能するはずです。

Dim result As DialogResult = 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
于 2010-02-13T08:17:09.120 に答える
35

私はすべての答えが正しいと思います。少し違うコードを書きたいだけです。私の意見では、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

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;
        }
于 2013-11-25T21:08:50.540 に答える
3

ダリンの例に少し追加するために、以下にボックス付きのアイコンを示します。 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
于 2013-11-19T12:39:07.930 に答える
3
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
于 2014-02-26T10:16:07.190 に答える
3

使用する:

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
于 2015-05-29T08:27:18.677 に答える
2

コンフォメーションアラートを閉じる:

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
于 2014-07-08T12:52:25.307 に答える
2

はい/いいえプロンプトを使用する方法は次のとおりです。

If MsgBox("Are you sure?", MsgBoxStyle.YesNo) <> MsgBoxResults.Yes Then
    Exit Sub
End If
于 2014-09-10T17:22:28.423 に答える
2

これは、の代わりにDimを使用して、を使用せずにそれを行う方法です。これは私の意見ではそれを書く最もきれいな方法です!MessageBox.ShowMsgBox

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

以下を使用すると、さらに短縮できますIf

If MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo) = vbYes Then
    ' Other Code goes here
End If
于 2017-09-07T12:27:27.987 に答える
-5

これを試して

MsgBox("Are you sure want to Exit", MsgBoxStyle.YesNo, "")
                If True Then
                    End
                End If
于 2014-07-05T05:01:59.597 に答える