カスタムコントロールのプロパティに「カテゴリー」や「説明文」を追加して、使いやすくする方法
追加方法の説明なので、作成するプログラムに特に意味はありません。
作業環境
OS | Windows 11 Pro 22h2 |
---|---|
開発ツール | Visual Studio 2022 Version 17.3.5 |
準備
TextBoxを継承したユーザーコントロールを作成します。
using System;
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;
namespace CustomControlDemo
{
public partial class CustomTextBox : TextBox
{
public CustomTextBox()
{
InitializeComponent();
}
}
}
設定を追加しない場合
using System;
using System.Drawing;
using System.Windows.Forms;
namespace CustomControlDemo
{
public partial class CustomTextBox : TextBox
{
/// <summary>
/// テキストの入力が必須かどうか
/// </summary>
public Boolean IsRequired { get; set; } = false;
public CustomTextBox()
{
InitializeComponent();
}
}
}
プロパティウィンドウの表示
項目は表示されるが、「その他」に分類されて、「説明」も表示されない。
設定を追加した場合
using System;
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel; // <1>
namespace CustomControlDemo
{
public partial class CustomTextBox : TextBox
{
/// <summary>
/// テキストの入力が必須かどうか
/// </summary>
[Category("カスタム")] // <2>
[Description("テキストの入力が必須かどうか")] // <3>
[DefaultValue(false)] // <4>
public Boolean IsRequired { get; set; } = false;
public CustomTextBox()
{
InitializeComponent();
}
}
}
<1> 必要な using
を追加します。
<2> プロパティウィンドウに表示するカテゴリーを記述します。
<3> プロパティの説明を記述します。
<4> プロパティの規定値を指定します。
規定値の指定は、「文字列」、「数値」、「真偽(bool)」が設定できます。
色などを指定する場合は、おまけを参照。
プロパティウィンドウの表示
おまけ
プロパティの規定値 (DefaultValue
) で色を指定する場合、typeof( )
を利用して記述します。
using System;
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;
namespace CustomControlDemo
{
public partial class CustomTextBox : TextBox
{
/// <summary>
/// テキストの正常時の背景色
/// </summary>
[Category("カスタム")]
[Description("テキストの正常時の背景色")]
[DefaultValue(typeof(Color), "Empty")]
public Color NormalColor { get; set; } = Color.Empty;
public CustomTextBox()
{
InitializeComponent();
}
}
}