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

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

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

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

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

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

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

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

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

・アイコンの設定

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

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

メッセージボックスとは

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

c#_msgBox01

MessageBox.Showの使い方

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

【C#入門】WPFでGUIを作る方法(DataGrid、ComboBox、ListBoxなど)
更新日 : 2019年4月8日

メッセージボックスを使うには、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

まとめ

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

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

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

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

長野 透

長野 透

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