【C#入門】メッセージボックスをWPFで使う方法

こんにちは!フリーランスの長野です。

メッセージボックスって使ってますか?

メッセージボックスはGUIでユーザーに注意や選択を促す場合に使います。

WPFでもメッセージボックスを使うことができます。

ちなみにWPFとはHTMLに似た感覚で外観デザインを開発することができるGUI開発ライブラリのことです。

この記事では、WPFのメッセージボックスについて

・メッセージボックスとは
・MessageBox.Showの使い方
・MessageBox.Showの戻り値

といった基本的な内容から、

・アイコンの設定

など実用的な使い方についても解説していきます。

今回はWPFのメッセージボックスについて、使い方をわかりやすく解説します。

目次

メッセージボックスとは

メッセージボックスは、エラーメッセージを表示したり、ユーザーに確認や選択を求める時などに使用します。

c#_msgBox01

MessageBox.Showの使い方

まずはWPFの使い方ですが、こちらで詳しく解説していますので参考にしてください。

メッセージボックスを使うには、MessageBoxクラスのShowメソッドを使います。

Showメソッドの第1引数に表示するメッセージを指定し、実行するとメッセージボックスが現れメッセージとOKボタンが表示されます。

MessageBox.Show("OKボタンを押して閉じてください");

実行結果:
c#_msgBox01

ちなみにShowメソッドの第2引数に指定した文字列がメッセージの左上に表示されます。

メッセージ文字列を改行する方法

メッセージボックスに表示するメッセージを改行して表示する方法についてみていきましょう。

メッセージ文字列中の改行したい場所に「\n」を挿入します。

MessageBox.Show("OKボタンを押して\n閉じてください");

実行結果:
c#_msgBox02

「\n」の代わりに「\r」でも改行されます。

また、Environment.NewLineを使って

MessageBox.Show("OKボタンを押して” + Environment.NewLine + “閉じてください");

としても、改行されます。

ボタンの設定

これまでの例では「OK」ボタンのみ表示され、操作することができました。

メッセージボックスでは「OK」ボタン以外にもボタンを表示、操作することができます。

「はい」「いいえ」「キャンセル」「中止」ボタンなどを指定することができます。

設定はShowメソッドの第3引数でMessageBoxButton列挙体のメンバを指定します。

MessageBoxButton列挙体のメンバサンプル例
OKc#_msgBox03
OKCancelc#_msgBox04
YesNoc#_msgBox05
YesNoCancelc#_msgBox06

それでは、MessageBoxButton列挙体のメンバYesNoCancelを指定する例をみていきましょう。

MessageBox.Show("OKボタンを押して閉じてください",
                "メッセージボックス",
                MessageBoxButton.YesNoCancel);

実行結果:
c#_msgBox06

MessageBox.Showの戻り値

先ほどは数種類のボタンを配置する方法についてみてきました。

では、それぞれのボタンを押して処理を変える方法についてみていきましょう。

どのボタンが押されたか取得するためにはShowメソッドの戻り値を使います。

Showメソッドの戻り値はMessageBoxResult列挙型のメンバーで返されます。

MessageBoxResult列挙型のメンバー説明
Cancel「キャンセル」ボタンを選択
No「いいえ」ボタンを選択
None結果を返さない
OK「OK」ボタンを選択
Yes「はい」ボタンを選択

それでは、「はい」「いいえ」「キャンセル」ボタンを選択する場合について、サンプルコードで確認しましょう。

MessageBoxResult result = MessageBox.Show("OKボタンを押して閉じてください",
    "メッセージボックス",
    MessageBoxButton.YesNoCancel);

if(result == MessageBoxResult.Yes) {
    // 「はい」ボタンを押した場合の処理
} else if(result == MessageBoxResult.No) {
    // 「いいえ」ボタンを押した場合の処理
} else if(result == MessageBoxResult.Cancel) {
    // 「キャンセル」ボタンを押した場合の処理
} else {
    // その他の場合の処理
}

アイコンの設定

メッセージボックスにビックリマークなどのアイコンを表示することができます。

Showメソッドの第4引数にMessageBoxImage列挙体のメンバを選択して指定します。

MessageBoxImage列挙体のメンバを表にまとめました。

MessageBoxImage列挙体のメンバサンプル例
Asteriskc#_msgBox07
Errorc#_msgBox08
Exclamationc#_msgBox09
Handc#_msgBox08
Informationc#_msgBox07
Nonec#_msgBox06
Questionc#_msgBox10
Stopc#_msgBox08
Warningc#_msgBox09

それではサンプルコードで確認しましょう。

MessageBoxResult result = MessageBox.Show("OKボタンを押して閉じてください",
                "メッセージボックス",
                MessageBoxButton.YesNoCancel,
                MessageBoxImage.Warning);

実行結果:
c#_msgBox09

まとめ

ここではメッセージボックスについて説明しました。

メッセージボックスはユーザに注意や選択を促す場合に使います。

使いこなすことができるように、この記事を何度も参考にして下さいね!

この記事を書いた人

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
info@sss-lab.com

目次