「コントロール - カスタムコントロール(C Sharp)」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == Windowsフォームに於いて、標準のコントロールを拡張したカスタムコントロールをDLLとして作成する方法を記述する。…」)
 
(文字列「</source>」を「</syntaxhighlight>」に置換)
54行目: 54行目:
     }
     }
  }
  }
  </source>
  </syntaxhighlight>
<br><br>
<br><br>



2021年11月24日 (水) 17:28時点における版

概要

Windowsフォームに於いて、標準のコントロールを拡張したカスタムコントロールをDLLとして作成する方法を記述する。


カスタムコントロールのソリューション / プロジェクトの作成

Visual Studioを起動して、[メニューバー] - [ファイル] - [新規作成] - [プロジェクト]を選択する。
[クラスライブラリ]を選択して[OK]ボタンを押下する。

ソリューションとプロジェクトが作成されるが、プロジェクトに初期配置されているClass1.csファイルは不要なので削除する。

<プロジェクト名>の上で右クリックして、[追加] - [新しい項目] - [カスタムコントロール]を選択する。
(右上の検索バーを使用すると簡単に見つけることができる)


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

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

まず、カスタムコントロールのデザイン画面でイベントを作成する。(プロパティのイベントの[Click]項目を選択する)
作成されたイベントメソッドに、this.SelectAll();と記述して、クリック時にテキストを全選択できるようにする。

以下のように、CustomControl1.csのソースコードを記述する。
ビルドすることでDLLが作成される。

<source lang="c#">
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();
      }
   }
}
</syntaxhighlight>



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

上記で作成したカスタムコンロトール(DLL)を他プロジェクトで使用する。

まず、他ソリューションとして、Windowsフォームプロジェクトを作成する。

次に、[メニューバー] - [ツール] -[ツールボックスアイテムの選択]を選択して、作成したカスタムコントロールをツールボックスに表示させる。
[ツールボックスアイテムの選択]画面が表示されるので、[参照]ボタンを押下して、上記で作成したDLLを選択する。

.NET Frameworkコンポーネントにカスタムコントロールが追加されたことを確認して、[OK]ボタンを押下する。
[ツールボックス]にカスタムコントロールが配置されるので確認する。

カスタムコントロールをフォームに配置してデバッグを行う。
カスタムコントロールに文字列を入力して、クリックすると全選択されるか確認する。