1

「×」ボタンをクリックすると、「終了してもよろしいですか?」というメッセージボックスが表示されるようにしたいです。「はい」の場合は閉じ、「いいえ」の場合は開いたままになります。私のコードは次のとおりです。

Dim a As Integer
a = MessageBox.Show("Are you sure you want to exit?", _
                    "Vice Versa 1.0", _
                    MessageBoxButtons.YesNo, _
                    MessageBoxIcon.Information)
If a = vbYes Then
  Me.Close()
Else
  Exit Sub
End If

これはうまくいくはずですよね?プロジェクトをデバッグするときに「いいえ」をクリックしてもプログラムが終了します。これは単にデバッグ モードにあるためですか、それともここで何か不足していますか?

(編集:)警告やエラーもありません。

メッセージ ボックスが表示されたときにゲームを一時停止する方法はありますか? ユーザーがキーボードで「p」を押した場合にのみ機能します。ただし、「p」を押さずに、メッセージボックスが表示されたときにゲームを一時停止したい

4

1 に答える 1

2

クローズをキャンセルするには、Cancel プロパティも設定する必要があります。の前の行にExit Sub、次を追加します。

e.Cancel = True

Me.Close を再度実行する必要はありません。If ブロックを記述するより良い方法は、単純に次のようにすることです。

a = MessageBox.Show(....)
If a = DialogResult.No Then
    e.Cancel = True
End If
于 2012-02-18T01:35:20.743 に答える