※当サイトはアフィリエイト広告を利用しています

Windowsフォームでカスタムコントロールを作成しDLLとして保存する方法

2022年4月8日ITVisualStudio,Windowsフォーム

Windowsフォームで最初から用意されているコントロールを拡張したカスタムコントロールを作成し、
他プロジェクトで使用するためにDLLとして保存する方法を書いていきます。

カスタムコントロールの作成

VisualStudioを開き、上部メニューのファイル → 新規作成 → プロジェクトを選択。
クラスライブラリを選択してOKを押下します。

ソリューションの初期状態は上記のようになっていると思います。
初期配置されているClass1.csはいらないので削除します。

プロジェクト名の上で右クリック → 追加 → 新しい項目 をクリックします。
カスタムコントロールを選択します。
右上の検索バーを使用すると簡単に見つけられます。

カスタムコントロールを作成します。
例として、テキストボックスを拡張したカスタムコントロールを作成します。
クリックしたらテキストが全選択状態になるテキストボックスです。

カスタムコントロールのデザイン画面でイベントを作成します。
プロパティのイベントのClickをダブルクリックしましょう。

作成されたイベントの中にthis.SelectAll();を記入し、
クリック時テキストを全選択するようにします。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ClassLibrary1
{
    public partial class CustomControl1 : TextBox
    {
        public CustomControl1()
        {
            InitializeComponent();
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
            base.OnPaint(pe);
        }

        //クリック時、テキストを全選択する
        private void CustomControl1_Click(object sender, EventArgs e)
        {
            this.SelectAll();
        }
    }
}

CustomControl1.csのソースを上記のようにすれば完成です。

一度ビルドしましょう。
ビルドすることでDLLが作成されます。

カスタムコントロール(DLL)の使い方

作成したDLLを他プロジェクトで使ってみましょう。
先程のソリューションにWindowsフォームプロジェクトを追加します。

作成したカスタムコントロールをツールボックスに表示させます。
上部メニューのツール → ツールボックスアイテムの選択 をクリックします。

ツールボックスアイテムの選択ダイアログが出てきたら、参照を押下し、作成したDLLを選択します。

.NETFrameworkコンポーネントにカスタムコントロールが追加されたことを確認し、OKを押します。

ツールボックスにカスタムコントロールが配置されました。
さっそく使ってみましょう。

カスタムコントロールをフォームに配置しデバッグします。

テキスト入力後、クリックで全選択されます。
問題なく動作することが確認できました。

まとめ

このやり方に辿りつくまでに結構時間がかかりました。
単純にクラスとして作成し、DLL化してもうまく動かなかったので、
最初からカスタムコントロールとして作成することが重要な気がします。

Windowsフォーム関連記事

2022年4月8日ITVisualStudio,Windowsフォーム

Posted by raishin