メッセージボックスを表示する
- MessageBoxクラスのShowメソッドでメッセージを表示できる
- MessageBoxのボタンやアイコンは引数で指定できる
目次
Windowsフォームアプリのメッセージ表示
コンソールアプリでは、System.Console.WriteLine("メッセージ内容");で任意のメッセージを簡単に表示できました。
Windowsフォームアプリの場合は、画面上のラベルなどのコントロールに文言を表示するか、メッセージ用のダイアログを表示する必要があります。
C#では、MessageBoxクラスのShowメソッドを呼び出すことで簡単にメッセージ用のダイアログを表示できます。
メッセージボックスを表示するサンプルプログラム
次のようなサンプルプログラムを紹介します。
①起動するとボタンが配置された画面を表示
②ボタンをクリックするとメッセージボックスを表示
③メッセージボックス上のボタンをクリックすると、クリックしたボタンの内容をメッセージで表示
実行結果サンプル
プログラムを実行すると次の画面を表示します。
「Click!」のボタンをクリックすると、メッセージボックスを表示します。
メッセージボックスのボタンをクリックすると、クリックしたボタンの内容をメッセージ表示します。
プログラム作成
ではプログラムを作成してみましょう。
次のファイルを同じフォルダに作成してください。
using System;
using System.Windows.Forms;
namespace SampleProgram
{
class Program
{
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
using System;
using System.Windows.Forms;
namespace SampleProgram
{
public class Form1 : Form
{
private Button button1;
// コンストラクタ
public Form1()
{
this.SuspendLayout();
// ボタン作成
this.button1 = new Button();
this.button1.Text = "Click!";
this.button1.Location = new System.Drawing.Point(40, 80);
this.button1.Height = 60;
this.button1.Width = 200;
this.button1.Click += new System.EventHandler(this.button1_Click);
// コントロールを貼付
this.Controls.Add(this.button1);
this.ResumeLayout(false);
this.PerformLayout();
}
// ボタンクリック時の処理
private void button1_Click(object sender, EventArgs e)
{
// メッセージボックスを表示
DialogResult result = MessageBox.Show("表示メッセージ",
"タイトル",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
// 結果を表示
if (result == DialogResult.Yes)
{
MessageBox.Show("はい");
}
else if (result == DialogResult.No)
{
MessageBox.Show("いいえ");
}
else if (result == DialogResult.Cancel)
{
MessageBox.Show("キャンセル");
}
}
}
}
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe ^
/t:winexe ^
*.cs
pause
ファイルを作成できたらCompile.batを実行してみましょう。
同じフォルダにProgram.exeが作成されます。
Program.exeを実行して実行結果サンプルのように動いたら成功です。
プログラム解説
作成したプログラムを解説していきます。
メッセージボックスの表示
メッセージボックスはMessageBoxのShowメソッドを呼び出すことで表示できます。
最も簡単な表示はメッセージのみ指定した表示です。
MessageBox.Show(メッセージの内容);と記載することで表示できます。
MessageBox.Show("はい");
引数を増やしていくことで、表示内容を変えることができます。
// メッセージボックスを表示
DialogResult result = MessageBox.Show("表示メッセージ",
"タイトル",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
引数の内容は次のようになります。
・第1引数:表示するメッセージ
・第2引数:メッセージボックスの画面タイトルに表示する文字列
・第3引数:どんなボタンを表示するかをMessageBoxButtons(後で説明)で指定
・第4引数:どんなアイコンを表示するかをMessageBoxIcon(後で説明)で指定
・第5引数:最初に表示したときにどのボタンをアクティブにするかをMessageBoxDefaultButton.Button1~の連番で指定、左から何番目のボタンにするかを指定
表示するボタン指定(MessageBoxButtons)
メッセージボックスに表示するボタンはMessageBoxButtons.○○の形式で指定します。
なお、このように型名.○○と指定できる決まった値のことを列挙型を言います。
指定できる内容は次のようになります。
| MessageBoxButtons列挙型 | 表示するボタン |
|---|---|
| MessageBoxButtons.OK | [OK]ボタン |
| MessageBoxButtons.OKCancel | [OK]と[キャンセル]ボタン |
| MessageBoxButtons.AbortRetryIgnore | [中止]と[再試行]と[無視]ボタン |
| MessageBoxButtons.YesNoCancel | [はい]と[いいえ]と[キャンセル]ボタン |
| MessageBoxButtons.YesNo | [はい]と[いいえ]ボタン |
| MessageBoxButtons.RetryCancel | [再試行]と[キャンセル]ボタン |
アイコン表示指定(MessageBoxIcon)
メッセージボックスに表示するアイコンはMessageBoxIcon.○○の形式で指定します。
指定できる内容は次のようになります。
HandとErrorとStop、WarningとExclamation、AsteriskとInformationは同じ内容を表示します。
| MessageBoxIcon列挙型 | 表示するアイコン |
|---|---|
| MessageBoxIcon.None | |
| MessageBoxIcon.Hand | |
| MessageBoxIcon.Error | |
| MessageBoxIcon.Stop | |
| MessageBoxIcon.Question | |
| MessageBoxIcon.Warning | |
| MessageBoxIcon.Exclamation | |
| MessageBoxIcon.Asterisk | |
| MessageBoxIcon.Information |
戻り値(DialogResult)
戻り値はDialogResult型で、何のボタンが押されたかが返ってきます。
DialogResultも列挙型で、内容は次のようになります。
| DialogResult列挙型 | 押されたボタン |
|---|---|
| DialogResult.None | 戻り値設定なし、DialogResult型に対するnulのような意味 |
| DialogResult.OK | [OK]ボタン |
| DialogResult.Cancel | [キャンセル]ボタン |
| DialogResult.Abort | [中止]ボタン |
| DialogResult.Retry | [再試行]ボタン |
| DialogResult.Ignore | [無視]ボタン |
| DialogResult.Yes | [はい]ボタン |
| DialogResult.No | [いいえ]ボタン |