C#でのメッセージボックスの使い方|ボタンとアイコンの種類やオプションを解説

- システム
エンジニア - C#でのメッセージボックスを表示させたいのですが、どうすればいいですか。
- プロジェクト
マネージャー - それでは、モードレスのメッセージボックスも併せて解説しましょう。
C#でのメッセージボックスの使い方
今回は、C#でのメッセージボックスの使い方について説明します。
メッセージボックスの基本的な使い方、ボタンの種類、アイコンの種類について紹介します。また、モードレスのメッセージボックスについても紹介します。
C#でのメッセージボックスの使い方に興味のある方はぜひご覧ください。
C#でのメッセージボックスの基本的な使い方
C#のメッセージボックスの基本的な使い方を紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
|
//メッセージボックスを表示する
MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Hand);
|
実行すると、アイコンは赤丸に白い「X」マークが表示されます。
「OK」ボタンと「キャンセル」ボタンが表示されます。ボタンをクリックすると、メッセージボックスが閉じます。
また、ボタンの選択結果を取得できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("ボタンの選択結果を取得します。",
"タイトル",
MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.Exclamation);
// ボタンの選択結果を取得
if (result == DialogResult.Abort)
{
//「中止」が選択された時
System.Console.WriteLine("「中止」が選択されました");
}
else if (result == DialogResult.Retry)
{
//「再試行」が選択された時
System.Console.WriteLine("「再試行」が選択されました");
}
else if (result == DialogResult.Ignore)
{
//「無視」が選択された時
System.Console.WriteLine("「無視」が選択されました");
}
|
C#でのメッセージボックスのボタンの種類6つ
C#のMessageBoxクラスのShowメソッドによりメッセージボックスを表示出来ることを紹介しました。
メッセージボックスに表示するボタンの組み合わせは引数にMessageBoxButtons列挙型で指定します。ここでは6通りのボタン配置の指定方法を紹介します。
1:OK
「OK」ボタンのみを表示する方法です。以下のコードの通り、「MessageBoxButtons.OK」を指定します。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.OK,
MessageBoxIcon.None);
|
2:OKCancel
C#でメッセージボックスに「OK」及び「キャンセル」ボタンを表示する方法です。以下のコードの通り、「MessageBoxButtons.OKCancel」を指定します。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.OKCancel,
MessageBoxIcon.None);
|
3:YesNo
C#でメッセージボックスに「はい」及び「いいえ」ボタンを表示する方法です。以下のコードの通り、「MessageBoxButtons.YesNo」を指定します。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.YesNo,
MessageBoxIcon.None);
|
4:YesNoCancel
C#でメッセージボックスに「はい」及び「いいえ」ボタン及び「キャンセル」ボタンを表示する方法です。以下のコードの通り、「MessageBoxButtons.YesNoCancel」を指定します。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.None);
|
5:AbortRetryIgnore
C#でメッセージボックスに「中止」及び「再試行」ボタン及び「無視」ボタンを表示する方法です。以下のコードの通り、「MessageBoxButtons.AbortRetryIgnore」を指定します。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.None);
|
6:RetryCancel
C#でメッセージボックスに「再試行」ボタン及び「キャンセル」ボタンを表示する方法です。以下のコードの通り、「MessageBoxButtons.RetryCancel」を指定します。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show(this, "メッセージ",
"タイトル",
MessageBoxButtons.RetryCancel,
MessageBoxIcon.None);
|
C#でのメッセージボックスのアイコンの種類5つ
C#で表示するメッセージボックスにメッセージの種別を表すアイコンを表示する方法を紹介します。
引数にMessageBoxIcon列挙型で指定します。
9通りの設定値を紹介しますが、アイコンは4種類ですので、同じアイコンのものは同じ項目で合わせて紹介します。
1:Error,Hand,Stop
C#のメッセージボックスに表示するアイコンを、上から順にError, Hand, Stopで指定したコードです。いずれも赤丸に白い「X」マークのアイコンが表示されます。表示するボタンは例として「MessageBoxButtons.AbortRetryIgnore」としていますが、実際の処理内容に合わせて指定してください。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.Error);
|
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.Hand);
|
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.AbortRetryIgnore,
MessageBoxIcon.Stop);
|
2:Information,Asterisk
C#のメッセージボックスに表示するアイコンを上から順にInformation, Asteriskで指定したコードです。いずれも青丸に白い「i」マークのアイコンが表示されます。表示するボタンは例として「MessageBoxButtons.OK」としていますが、実際の処理内容に合わせて指定してください。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
|
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
|
3:Question
C#のメッセージボックスに表示するアイコンをQuestionで指定したコードです。青丸に白い「?」マークのアイコンが表示されます。表示するボタンは例として「MessageBoxButtons.YesNoCancel」としていますが、実際の処理内容に合わせて指定してください。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question);
|
4:Warning,Exclamation
C#のメッセージボックスに表示するアイコンをWarning及びExclamationで指定したコードです。いずれも黄色い三角に黒い「!」マークのアイコンが表示されます。表示するボタンは例として「MessageBoxButtons.YesNo」としていますが、実際の処理内容に合わせて指定してください。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning);
|
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation);
|
5:None
C#のメッセージボックスに表示するアイコンをNoneで指定したコードです。アイコンは表示されません。表示するボタンは例として「MessageBoxButtons.OK」としていますが、実際の処理内容に合わせて指定してください。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.OK,
MessageBoxIcon.None);
|
C#でのメッセージボックスの戻り値
「C#でのメッセージボックスの基本的な使い方」では戻り値としてDialogResult列挙型を使った分岐例を挙げました。戻り値として「DialogResult.None」~「DialogResult.No」(0 ~ 7)が定義されており、紹介した全てのボタンに対応できます。戻り値を一覧にして紹介します。
1
2
3
4
5
6
7
8
|
None 0 メッセージボックスの実行継続
OK 1 「OK」ボタンが押された
Cancel 2 「キャンセル」ボタンが押された
Abort 3 「中止」ボタンが押された
Retry 4 「再試行」ボタンが押された
Ignore 5 「無視」ボタンが押された
Yes 6 「はい」ボタンが押された
No 7 「いいえ」ボタンが押された
|
C#でのメッセージボックスのオプション3つ
C#のメッセージボックスは、引数にオーナーウィンドウのフォームやMessageBoxOptions列挙型でメッセージボックスの表示方法を記述することで指定できます。
1:サービスからのメッセージボックスの表示
C#のメッセージボックスはサービスからの表示を以下のコードのように「MessageBoxOptions.ServiceNotification」で指定できますが、MessageBoxOptionsはMessageBoxDefaultButtonを指定しないと使用できません。
MessageBoxDefaultButtonはデフォルトとして選択されるボタンの指定です。コードでは例として2番目のボタン「MessageBoxDefaultButton2」を指定しています。
1
2
3
4
5
6
7
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2,
MessageBoxOptions.ServiceNotification);
|
2:文字を右揃えにして表示
C#のメッセージボックスは表示テキストの右揃えを以下のコードのように「MessageBoxOptions.RightAlign」で指定できますが、MessageBoxOptionsですのでMessageBoxDefaultButtonを指定しないと使用できません。
1
2
3
4
5
6
7
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2,
MessageBoxOptions.RightAlign );
|
3:オーナーウィンドウの指定
C#のメッセージボックスでは、以下のコードのように先頭の引数でWindowを指定し、その前面にメッセージボックスを表示します。
このコードではメインウィンドウを「this」で指定しています。
1
2
3
4
5
|
// メッセージボックスの表示
DialogResult result = MessageBox.Show(this, "メッセージ",
"タイトル",
MessageBoxButtons.RetryCancel,
MessageBoxIcon.None);
|
モードレスのメッセージボックス
C#で、モードレスなメッセージボックスを表示する方法を紹介します。
通常、メッセージボックスはモーダルウィンドウで表示されます。メッセージボックスを閉じなければ、親ウィンドウの操作ができません。モードレスのメッセージボックスにするには、スレッド化します。
実際のソースコードを見てみましょう。
using System.Threading;を先頭に記載してください。
1
2
3
4
5
6
7
8
|
new Thread(new ThreadStart(delegate
{
MessageBox.Show("メッセージ",
"タイトル",
MessageBoxButtons.OK,
MessageBoxIcon.Hand);
})).Start();
|
実行すると、モードレスなメッセージボックスが表示されることが分かります。
このように、C#でモードレスなメッセージボックスを表示できます。
- システム
エンジニア - ボタンやアイコンも変えられるのですね。
- プロジェクト
マネージャー - そうですね。メッセージボックスをモードレスにする方法もあわせて、ご自身でコードを書いて、理解を深めてください。
C#でのメッセージボックスを正しく使いこなそう
いかがでしたでしょうか。C#でのメッセージボックスの使い方について説明しました。
メッセージボックスの基本的な使い方、ボタンの種類、アイコンの種類について紹介しましたが、メッセージボックスをモードレスにすることも可能です。
ぜひご自身でソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


C#新着案件New Job
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)