コンポーネントのデザイン時属性

属性を適用して共通言語ランタイムにメタデータを用意する方法がわからない場合は、「属性を使用したメタデータの拡張」を参照してください。 コンポーネントは Visual Studio などのデザイナーに表示できるため、コンポーネントにはデザイン時ツールにメタデータを与える属性が必要です。 このセクションでは、一般的に使用されるデザイン時属性について説明し、それらの属性のリストを示します。

属性とデザイナーのサポート

デザイン時属性は、ビジュアル デザイン ツールに対して重要な情報を提供するので、デザイン時にコントロールとそのメンバーを正しく表示するためにはこれらの属性が不可欠です。

CategoryAttribute 属性を使って、プロパティ ブラウザーに Alignment カテゴリの TextAlignment プロパティを表示するコード片を次に示します。 DescriptionAttribute 属性は、ユーザーがプロパティをクリックしたときに、そのプロパティの簡単な説明をプロパティ ブラウザーに表示するために使用されます。

[
Category("Alignment"),
Description("Specifies the alignment of text.")
]
public ContentAlignment TextAlignment { //... }
<Category("Alignment"), _
Description("Specifies the alignment of text.")> _
Public Property _
TextAlignment As ContentAlignment
   ' ...
End Property

注意

Visual C# および Visual Basic では、AttributeNameAttribute という名前の属性クラスは、属性構文では簡単に AttributeName と記述できます。

デザイン時属性の中には、クラス レベルで適用されるものがあります。 DesignerAttribute 属性はクラス レベルで適用され、コントロールの表示に使用するデザイナー クラスをフォーム デザイナーに通知します。 コンポーネントは既定のデザイナー (System.ComponentModel.Design.ComponentDesigner) に関連付けられ、Windows フォームおよび ASP.NET サーバー コントロールは、それら自身の既定のデザイナーに関連付けられます。 DesignerAttribute は、コンポーネントまたはコントロールに対してカスタム デザイナーを定義する場合にだけ適用してください。

// Associates the designer class SimpleControl.Design.SimpleDesigner
// with Simple.
[ Designer(typeof(SimpleControl.Design.SimpleDesigner))]
    public class Simple : WebControl { //... }
' Associates the designer class SimpleControl.Design.SimpleDesigner
' with Simple.
<Designer(GetType(SimpleControl.Design.SimpleDesigner))> _
Public Class Simple
    Inherits WebControl
    ' ...
End Class

プロパティとイベントに共通の属性

プロパティとイベントに共通に適用される属性のリストを次の表に示します。

属性

適用対象

説明

BrowsableAttribute

プロパティおよびイベント

プロパティまたはイベントをプロパティ ブラウザーに表示するかどうかを指定します。

CategoryAttribute

プロパティおよびイベント

プロパティまたはイベントをグループ化するカテゴリの名前を指定します。 カテゴリを使用すると、コンポーネントのプロパティおよびイベントを論理的にグループ化してプロパティ ブラウザーに表示できます。

DescriptionAttribute

プロパティおよびイベント

ユーザーがプロパティまたはイベントを選択したときにプロパティ ブラウザーの一番下に表示される、テキストの小さなブロックを定義します。

BindableAttribute

プロパティ

プロパティを連結対象とするかどうかを指定します。

DefaultPropertyAttribute

プロパティ

この属性はクラス宣言の前に挿入してください。

コンポーネントの既定のプロパティを指定します。 ユーザーがコントロールをクリックすると、プロパティ ブラウザーでこのプロパティが選択されます。

DefaultValueAttribute

プロパティ

プロパティの単純な既定値を設定します。

EditorAttribute

プロパティ

ビジュアル デザイナーでプロパティの編集 (変更) に使用するエディターを指定します。

LocalizableAttribute

プロパティ

プロパティがローカライズ可能であることを指定します。 ユーザーがフォームのローカライズを選択すると、この属性を持つプロパティは、自動的にリソース ファイルに保存されます。

DesignerSerializationVisibilityAttribute

プロパティ

プロパティ ブラウザーに表示されたプロパティをコードに保存するかどうか (およびその方法) を指定します。

TypeConverterAttribute

プロパティ

プロパティの型を別のデータ型に変換するために使用する型コンバーターを指定します。

DefaultEventAttribute

イベント

この属性はクラス宣言の前に挿入してください。

コンポーネントの既定のイベントを指定します。 これは、ユーザーがコンポーネントをクリックしたときに、プロパティ ブラウザーで選択されるイベントです。

特に指定がない限り、プロパティとイベントの属性は、次の例に示すように、コード内でプロパティまたはイベント宣言の直前に記述します。

// To apply CategoryAttribute to the BorderColor 
// property, place it immediately before the declaration
// of the BorderColor property.
[Category("Appearance")] 
public Color BorderColor;

// To apply DescriptionAttribute to the Click event, 
// place it immediately before the declaration
// of the Click event.
[Description("The Click event of the button")]
public event EventHandler Click;
' To apply CategoryAttribute  to the BorderColor 
' property, place it before the property declaration.
<Category("Appearance")> Public BorderColor As Color

' To apply DescriptionAttribute to the Click event, 
' place it before the event declaration.
<Description("The Click event of the button")> Public Event Click

デザイナーと、コンポーネントおよびコントロールとを関連付けるデザイン時属性については、「デザイン時サポートの拡張」を参照してください。

.NET Framework クラス ライブラリで定義されている属性クラスを使用する他に、独自の属性クラスを定義することもできます。 詳細については、使用するプログラミング言語のドキュメントを参照するか、または「カスタム属性の記述」を参照してください。

参照

処理手順

方法 : Windows フォーム コントロールに属性を適用する

概念

属性とデザイン時サポート

Windows フォーム コントロールの属性

その他の技術情報

デザイン時サポートの拡張