メッセージボックスの表示には、MessageBoxクラス(System.Windows.Forms名前空間)のShowメソッドを使用します。
エラーメッセージの表示や、ユーザーの確認が必要な場合に使用します。
- 前提
- 一つのボタンを表示する
- 複数のボタンを表示
- 複数のボタンのうち、いずれかのボタンをデフォルト選択状態にしたい
- メッセージボックスにアイコンを表示
- 複数ボタンを表示したとき、どのボタンが選ばれたか判定
- メッセージボックスのメッセージを改行
前提
- フォーム(Form1 )にボタン(button1)が配置されている。
- button1をクリックした際にメッセージボックスが表示される。
- Framework:Visualstudio .NET Framework
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //ここにMessageBox.Show("");を記述する } } }
一つのボタンを表示する
メッセージと[OK]ボタンを表示
MessageBox.Show("メッセージ");
または、
MessageBox.Show("メッセージ",,MessageBoxButtons.OK);
引数が指定されていない場合はMessageBoxButtons.OK
は指定しなくてもよい。
何が表示されるのか、何を指定しているのかを明らかにするため、明示しておいたほうがソースの可読性は向上します。
メッセージとダイアログタイトル、[OK]ボタンを表示
MessageBox.Show("メッセージ",メッセージバー表示テキスト);
または、
MessageBox.Show("メッセージ",メッセージバー表示テキスト,MessageBoxButtons.OK);
引数が指定されていない場合はMessageBoxButtons.OK
は指定しなくてもよい。
何が表示されるのか、何を指定しているのかを明らかにするため、明示しておいたほうがソースの可読性は向上します。
複数のボタンを表示
[OK]と[キャンセル]ボタンを表示
MessageBox.Show("メッセージ", "メッセージバー", MessageBoxButtons.OKCancel);
[はい]と[いいえ]ボタンを表示
MessageBox.Show("メッセージ",メッセージバー,MessageBoxButtons.YesNo);
[再試行]と[キャンセル]ボタンを表示
MessageBox.Show("メッセージ",メッセージバー,MessageBoxButtons.RetryCancel);
[はい]、[いいえ]、[キャンセル]ボタンを表示
MessageBox.Show("メッセージ",メッセージバー,MessageBoxButtons.YesNoCancel);
[中止]、[再試行]、[無視]ボタンを表示
MessageBox.Show("メッセージ",メッセージバー,MessageBoxButtons.AbortRetryIgnore);
複数のボタンのうち、いずれかのボタンをデフォルト選択状態にしたい
左から1つ目のボタンを選択状態にする
MessageBox.Show("メッセージ", "メッセージバー", MessageBoxButtons.YesNoCancel,MessageBoxIcon.None,MessageBoxDefaultButton.Button1);
左から2つ目のボタンを選択状態にする
MessageBox.Show("メッセージ", "メッセージバー", MessageBoxButtons.YesNoCancel,MessageBoxIcon.None,MessageBoxDefaultButton.Button2);
左から3つ目のボタンを選択状態にする
MessageBox.Show("メッセージ", "メッセージバー", MessageBoxButtons.YesNoCancel,MessageBoxIcon.None,MessageBoxDefaultButton.Button3);
メッセージボックスにアイコンを表示
表示しない
MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.None);
INFORMTIONを示すiマーク
MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Information); //または MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
Warning 確認やユーザへの質問を示す?マーク
MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Question);
Question(?マーク)の使用に注意
疑問符(?)は、質問の特定の種類を明確に表さず、メッセージの言い回しはどのメッセージであっても適用されてしまいます。そのため、疑問符(?)のメッセージアイコンの使用は推奨されなくなりました。
メッセージを見るユーザは、疑問符(?)アイコンをヘルプ情報と混同することがあります。したがって、メッセージボックスには疑問符(?)アイコンの使用は控えてください。
Warning 注意を示す!マーク
MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Warning); //または MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
ERROR エラーや停止を示す☓マーク
MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Error); //または MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Stop); //または MessageBox.Show("メッセージ","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Hand);
複数ボタンを表示したとき、どのボタンが選ばれたか判定
メッセージボックスのボタンのうち、いずれかがクリックされたか判定するために、DialogResult型の変数にクリック結果を代入させます。
DialogResult dRet = MessageBox.Show("メッセージ", "メッセージバー", MessageBoxButtons.YesNoCancel);
クリックされたボタンを判定するためには、DialogResult型変数
に格納された戻り値を比較することで判定します。
判定の際は、DialogResultクラスに格納された値を明示することで、ソースの可読性が向上します。
//中止ボタンがクリックされた場合 if (dRet == DialogResult.Abort) { } //キャンセルボタンがクリックされた場合 if (dRet == DialogResult.Cancel) { } //無視ボタンがクリックされた場合 if (dRet == DialogResult.Ignore) { } //いいえボタンがクリックされた場合 if (dRet == DialogResult.No) { } //OKボタンがクリックされた場合 if (dRet == DialogResult.OK) { } //再試行ボタンがクリックされた場合 if (dRet == DialogResult.Retry) { } //はいボタンがクリックされた場合 if (dRet == DialogResult.Yes) { }
メッセージボックスのメッセージを改行
”メッセージ” + Environment.NewLine + "2行目"
や”メッセージ\r\n2行目"
といった改行が行えます。
MessageBox.Show("C#(.Net)でメッセージボックスを表示する。" + Environment.NewLine + "いろいろな表示方法があります。", "タイトル", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show("C#(.Net)でメッセージボックスを表示する。\r\nいろいろな表示方法があります。", "タイトル", MessageBoxButtons.OK, MessageBoxIcon.Information);