方法 : デザイン モードでコントロールのカスタム初期化を行う
カスタム デザイナーを使用すると、デザイン環境によって作成されるコンポーネントおよびコントロールを作成時に初期化できます。
使用例
デザイン環境による作成時にコントロールを初期化する方法を、次のコード例に示します。この作成方法は、コントロールのインスタンスをフォームにドラッグしたときと、フォームのデザイナーを起動したときが該当します。このコード例の完全な説明については、「方法 : デザイン モードでコントロールの外観と動作を拡張する」を参照してください。
' This demonstrates changing the appearance of a control while
' it is being designed. In this case, the BackColor property is
' set to LightBlue.
Public Overrides Sub InitializeNewComponent( _
ByVal defaultValues As IDictionary)
MyBase.InitializeNewComponent(defaultValues)
Dim colorPropDesc As PropertyDescriptor = _
TypeDescriptor.GetProperties(Component)("BackColor")
If colorPropDesc IsNot Nothing AndAlso _
colorPropDesc.PropertyType Is GetType(Color) AndAlso _
Not colorPropDesc.IsReadOnly AndAlso _
colorPropDesc.IsBrowsable Then
colorPropDesc.SetValue(Component, Color.LightBlue)
End If
End Sub
// This demonstrates changing the appearance of a control while
// it is being designed. In this case, the BackColor property is
// set to LightBlue.
public override void InitializeNewComponent(IDictionary defaultValues)
{
base.InitializeNewComponent(defaultValues);
PropertyDescriptor colorPropDesc =
TypeDescriptor.GetProperties(Component)["BackColor"];
if (colorPropDesc != null &&
colorPropDesc.PropertyType == typeof(Color) &&
!colorPropDesc.IsReadOnly &&
colorPropDesc.IsBrowsable)
{
colorPropDesc.SetValue(Component, Color.LightBlue);
}
}
デザイン環境は、コントロールまたはコンポーネントのインスタンスを作成するときに、デザイナーの InitializeNewComponent メソッドを呼び出します。前のコード例では、コントロールの BackColor プロパティが PropertyDescriptor を使用して設定されます。
コードのコンパイル
コンポーネントのデザイン時の側面に変更を加える場合は、コントロール プロジェクトをビルドし直す必要があります。加えて、このコンポーネントを使用している別の Windows フォーム プロジェクトが現在開かれている場合は、多くの場合、変更内容を表示するのにプロジェクトを更新する必要があります。通常は、コンポーネントが含まれているデザイン ウィンドウをいったん閉じてから開き直す必要があります。
[!メモ]
デザイン時アセンブリ System.Design.dll への参照を追加する必要があります。このアセンブリは、.NET Framework 4 Client Profile には含まれていません。System.Design.dll への参照を追加するには、プロジェクトのターゲット フレームワークを .NET Framework 4 に変更する必要があります。
参照
処理手順
方法 : デザイン モードでコントロールの外観と動作を拡張する