TextBoxのカスタムコントロールを作成する場合
カスタムコントロールを追加する
プロジェクトタブ > 新しい項目の追加 > カスタムコントロール(Windowsフォーム) を選択する。
デザイナーファイルで継承を変更する
・ソリューションエクスプローラで○○Designer.vb
を探して開く。
・継承を変更する。(例:TextBoxのカスタムコントロールを作成する場合は、ControlをTextBoxに変更する。)
カスタムコントロールのプロパティを設定する
・○○.vbを選択した状態で右クリックし、コードを表示
を選択する。
・以下は削除する。
○○.vb
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
'カスタム描画コードをここに追加します。
End Sub
・プロパティを追加する。(例:テキストボックスの背景色を変更する場合)
○○.vb
Public Overrides Property BackColor As Color ' textboxのbackcolorプロパティを継承
Get
Return MyBase.BackColor
End Get
Set(value As Color)
MyBase.BackColor = value
End Set
End Property
Overloads プロパティ名
と入力すると、入力候補で出てくるかも。
・プロパティの初期値を追加する。(↑のコードの上に追加する。)
○○.vb
<System.ComponentModel.DefaultValue(GetType(Color), "Yellow")> ' プロパティの初期値
・コンストラクタを追加する。
○○.vb
Sub New()
' この呼び出しはデザイナーで必要です。
InitializeComponent()
InitializeComponent() 呼び出しの後で初期化を追加します。
BackColor = Color.Yellow ' TextBoxの背景色を黄色で初期化
End Sub
動作確認をする
フォームのデザイナーでコンポーネントを張り付けて実行する。
※ツールボックスにカスタムコンポーネントが出ない場合は、1回実行すると表示されるかも。
参考サイト
カスタムコントロール作り方(初級)(TextBox編)
https://www.ratebelab.com/soft/program/670/
プロパティの既定値を設定する
https://radian.hateblo.jp/entry/2014/10/17/155258