【VB.Net】メッセージボックスでどのボタンが押されたか知る方法

どうも!リョクちゃです。

今回は、メッセージボックスに表示されるボタンを選ぶことによって、

どのボタンが押されたか結果を受け取り、結果によって処理を分岐していく方法について、

メッセージボックスを使ったYes/Noゲームを例に紹介していきます。

ちなみに前回はこちら、

MACアドレスを正規表現を使って判定する方法を紹介しています。MACアドレスは、0~9の半角数字にA~F(a~f)の半角英字で構成されます。

メッセージボックスについては、下の記事で紹介しています。

Windowsアプリケーションを作るうえで、メッセージボックスはエラー内容や必要な情報を通知してくれるのに非常に役立つツールです。今回はメッセージボックスの使い方をざっくりと紹介しています。



準備編:フォームの作成

このようなフォームを作成します。

ちなみに筆者の環境は、

  • VisualStudio2019
  • Windows 10 64bit
  • .Net Framework 4.5.1

です。

スポンサーリンク




Yes/Noゲームについて

内容としては、いたってシンプルです。

質問に対してYesかNoで答えるのを繰り返していき、

お題が何だったのかをあてるゲームです。

Q&Aゲームとも呼ばれます。

ウミガメのスープもYes/Noゲームに位置付けられるのかな……。

これの場合は、Yes/Noの他に、関係ありませんが選択肢としてありますね。

プログラム編

メッセージボックスでYes/Noを出す

メッセージボックスでYes/Noボタンを出すには、

MessageBox.Show(buttons:=MessageBoxButtons.YesNo)

メッセージボックスのキーワード引数である、

buttonsにMessageBoxButtonsプロパティにあるYes/Noを選択することで、

Yes/Noボタンを表示させることができます。

ただ、buttonsだけに値を代入してもエラーとなってしまうので、

キーワード引数である、textとcaptionにも設定をしてあげます。

コードを書くと下のようになります。

Yes/Noの結果を受け取る

メッセージボックス内に表示されるボタンでどのボタンが押されたか、

結果を受け取りたい場合

DialogResultを使って戻り値を受け取る変数を宣言します。

このDialogResultは、ダイアログボックスの戻り値を返してくれる列挙型です。

コードで書くと下のようになります。

ここでは、result変数をDialogResultで宣言し、

結果として先ほどのメッセージボックスのYes/Noのどちらかが代入されます。

これをif文を使い、YesならConsole.WriteLine(“Yes”)と出力し、

Noなら”No”とそれぞれ出力します。

それでは、これらを参考にメッセージボックスによる簡単なYes/Noゲームを作成します。



Yes/Noゲームを作る

筆者作ってて思いました……これ対話型でやらなきゃ意味ないのに、

アプリだけで、パソコンだけで完結するYesNoゲームになってしまいました……。

操作するプレーヤーは、パソコンからくる質問に対してYesかNoで答えるだけの

一方通行なゲームになってしまいました……。

これ、作成者次第で無限に質問が続く場合があります(笑)

改めて、Yes/Noゲームの対話バージョンは作って紹介します。

今回は、メッセージボックスでのどのボタンが押されたかを受け取るやり方でも

身につけてもらえればと思います。

一方通行なYesNoゲーム!!(よいこはまねしないでね)

途中までのコードで、半ばあきらめてます。

実行例のみを表示します。

質問1

質問2

質問3

答え

まとめ

今回は、メッセージボックスにて表示されるボタン(例えば、Yes/No)でどのボタンが押されたかを受け取る方法について解説しました。

例を交えて解説したかったのですが、

今回はあまり参考にならない例を作ってしまいました。

すみません(-_-;)

次回は、対話型のYes/Noゲームを作れればと思っています。

最後までご覧いただきありがとうございます。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク