Windows フォーム アプリケーションで独自の MessageBox を作成する

まず、MessageBox とは何かを知る必要があります...

MessageBox コントロールは、指定されたテキストでメッセージを表示し、カスタム イメージ、タイトル、およびボタン セットを指定することでカスタマイズできます (これらのボタン セットにより、ユーザーは基本的な yes/no 回答以上のものを選択できます)。

独自の MessageBox を作成することにより、生成された dll を使用するか、クラスを含むファイルをコピーするだけで、新しいアプリケーションでその MessageBox コントロールを再利用できます。

# 独自の MessageBox コントロールの作成

独自の MessageBox コントロールを作成するには、以下のガイドに従ってください...

  • Visual Studio のインスタンスを開きます (VS 2008/2010/2012/2015/2017)
  • 上部のツールバーに移動し、[ファイル] -> [新しいプロジェクト] -> [Windows フォーム アプリケーション] -> [プロジェクトに名前を付けて [OK] をクリックします。
  • ロードしたら、ボタン コントロールをツールボックス (左側にあります) からフォームにドラッグ アンド ドロップします (以下を参照)。
  • ボタンをダブルクリックすると、統合開発環境が自動的にクリック イベント ハンドラーを生成します。
  • フォームのコードを次のように編集します (フォームを右クリックして [コードの編集] をクリックします)。
  • namespace MsgBoxExample {
        public partial class MsgBoxExampleForm : Form {
            //Constructor, called when the class is initialised.
            public MsgBoxExampleForm() {
                InitializeComponent();
            }
    
            //Called whenever the button is clicked.
            private void btnShowMessageBox_Click(object sender, EventArgs e) {
               CustomMsgBox.Show($"I'm a {nameof(CustomMsgBox)}!", "MSG", "OK");
            }
        }
    }
    
    
  • ソリューション エクスプローラー -> プロジェクトを右クリック -> 追加 -> Windows フォームで名前を「CustomMsgBox.cs」に設定
  • ボタンとラベルのコントロールをツールボックスからフォームにドラッグします (ドラッグすると、以下のフォームのようになります):
  • <オール>
  • 次のコードを、新しく作成したフォームに書き出します:
  • private DialogResult result = DialogResult.No;
    public static DialogResult Show(string text, string caption, string btnOkText) {
        var msgBox = new CustomMsgBox();
        msgBox.lblText.Text = text; //The text for the label...
        msgBox.Text = caption; //Title of form
        msgBox.btnOk.Text = btnOkText; //Text on the button
        //This method is blocking, and will only return once the user
        //clicks ok or closes the form.
        msgBox.ShowDialog(); 
        return result;
    }
    
    private void btnOk_Click(object sender, EventArgs e) {
        result = DialogResult.Yes;
        MsgBox.Close();
    }
    
    
  • F5 キーを押すだけでプログラムを実行できます。おめでとうございます。再利用可能なコントロールが作成されました。
  • # 別の Windows フォーム アプリケーションで独自に作成した MessageBox コントロールを使用する方法

    既存の .cs ファイルを見つけるには、Visual Studio のインスタンスでプロジェクトを右クリックし、[エクスプローラーでフォルダーを開く] をクリックします。

  • Visual Studio --> 現在のプロジェクト (Windows フォーム) --> ソリューション エクスプローラー --> プロジェクト名 --> 右クリック --> 追加 --> 既存のアイテム --> 次に、既存の .cs ファイルを見つけます。
  • コントロールを使用するために、最後にもう 1 つ行うことがあります。コードに using ステートメントを追加して、アセンブリがその依存関係を認識できるようにします。
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    .
    .
    .
    using CustomMsgBox; //Here's the using statement for our dependency.
    
    
  • メッセージボックスを表示するには、次のようにします...CustomMsgBox.Show("Your Message for Message Box...","MSG","OK");
  • # 構文

    • 'static DialogResult 結果 =DialogResult.No; //DialogResult は、終了後にダイアログによって返されます。'