メッセージボックスの表示 - 複数のボタンがあるメッセージダイアログ - C#

C#で複数のボタンを持つメッセージボックスを表示するコードを紹介します。

概要

こちらの記事では、メッセージを表示するダイアログ、メッセージボックスのコードを紹介しました。 メッセージを表示する場合、アラートを表示する場合は確認ボタンのみを表示するUIで問題ありませんが、 アクションの実行確認をする場合はメッセージボックス内に複数のボタンを表示したい場合があります。
この記事では、ウィンドウ内に複数のボタンを表示するメッセージボックスのコードを紹介します。

シンプルなメッセージダイアログボックス

メッセージを表示し、[はい],[いいえ]ボタンを持つメッセージボックスを表示するコードです。
MessageBox.Show()メソッドのMessageBoxButtons引数にMessageBoxButtons.YesNoを指定します。

コード

private void button2_Click(object sender, EventArgs e)
{
  DialogResult dr = MessageBox.Show("本当によろしいですか?","確認",MessageBoxButtons.YesNo);

  if (dr == System.Windows.Forms.DialogResult.Yes) {
    MessageBox.Show("Yesを押しました。");
  }
    else if (dr == System.Windows.Forms.DialogResult.No) {
    MessageBox.Show("Noを押しました。");
  }
  else {
    MessageBox.Show("Yes,No以外の動作");
  }
}

実行結果

[はい],[いいえ]ボタンを持つメッセージダイアログボックスが表示できます。


ボタンをクリックするとそれぞれのボタンの押下を取得できます。


OK, キャンセルボタンを持つメッセージダイアログボックス

[OK]ボタンと[キャンセル]ボタンを持つメッセージダイアログボックスを表示します。
MessageBox.Show()メソッドのMessageBoxButtons引数にMessageBoxButtons.OKCancelを指定します。

コード

private void button3_Click(object sender, EventArgs e)
{
  DialogResult dr = MessageBox.Show("本当によろしいですか?", "確認", MessageBoxButtons.OKCancel);
  if (dr == System.Windows.Forms.DialogResult.OK) {
    MessageBox.Show("OKを押しました。");
  }
  else if (dr == System.Windows.Forms.DialogResult.Cancel) {
    MessageBox.Show("Cancelを押しました。");
  }
  else {
    MessageBox.Show("OK,Cancel以外の動作");
  }
}

実行結果


再試行, キャンセルボタンを持つメッセージダイアログボックス

MessageBox.Show()メソッドのMessageBoxButtons引数にMessageBoxButtons.RetryCancelを指定します。

コード

private void button7_Click(object sender, EventArgs e)
{
  DialogResult dr = MessageBox.Show("処理に失敗しました。", 
    "メッセージ", MessageBoxButtons.RetryCancel);
  if (dr == System.Windows.Forms.DialogResult.Yes) {
    MessageBox.Show("Retryを押しました。");
  }
  else if (dr == System.Windows.Forms.DialogResult.Cancel) {
    MessageBox.Show("Cancelを押しました。");
  }
  else {
    MessageBox.Show("それ以外の動作");
  }
}

実行結果


はい, いいえ, キャンセルボタンを持つメッセージダイアログボックス

MessageBox.Show()メソッドのMessageBoxButtons引数にMessageBoxButtons.YesNoCancelを指定します。

コード

private void button6_Click(object sender, EventArgs e)
{
  DialogResult dr = MessageBox.Show("ファイルが既に存在します。上書きしてよろしいですか。", 
    "メッセージ", MessageBoxButtons.YesNoCancel);
  if (dr == System.Windows.Forms.DialogResult.Yes) {
    MessageBox.Show("Yesを押しました。");
  }
  else if (dr == System.Windows.Forms.DialogResult.No) {
    MessageBox.Show("Noを押しました。");
  }
  else if (dr == System.Windows.Forms.DialogResult.Cancel) {
    MessageBox.Show("Cancelを押しました。");
  }
  else {
    MessageBox.Show("それ以外の動作");
  }
}

実行結果


中止, 再試行, 無視ボタンを持つメッセージダイアログボックス

MessageBox.Show()メソッドのMessageBoxButtons引数にMessageBoxButtons.AbortRetryIgnoreを指定します。

コード

private void button5_Click(object sender, EventArgs e)
{
  DialogResult dr = MessageBox.Show("書き込み権限がありません。",
     "メッセージ", MessageBoxButtons.AbortRetryIgnore);
  if (dr == System.Windows.Forms.DialogResult.Abort) {
    MessageBox.Show("Abortを押しました。");
  }
  else if (dr == System.Windows.Forms.DialogResult.Retry) {
    MessageBox.Show("Retryを押しました。");
  }
  else if (dr == System.Windows.Forms.DialogResult.Ignore) {
    MessageBox.Show("Ignoreを押しました。");
  }
  else {
    MessageBox.Show("それ以外の動作");
  }
}

実行結果



著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-07
作成日: 2011-10-14
iPentec all rights reserverd.