次の方法で共有


CategoryAttribute クラス

System.Windows.Forms.PropertyGrid コントロールが [項目別] モードに設定されているときに、コントロールに表示するプロパティまたはイベントを分類するカテゴリの名前を指定します。

この型のすべてのメンバの一覧については、CategoryAttribute メンバ を参照してください。

System.Object
   System.Attribute
      System.ComponentModel.CategoryAttribute

<AttributeUsage(AttributeTargets.All)>
Public Class CategoryAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.All)]
public class CategoryAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::All)]
public __gc class CategoryAttribute : public Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.All)
class CategoryAttribute extends Attribute

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

CategoryAttribute は、 System.Windows.Forms.PropertyGrid コントロールが [項目別] モードに設定されているときに、コントロールに表示するプロパティまたはイベントを関連付けるカテゴリを示します。 CategoryAttribute を適用しないプロパティまたはイベントは、 System.Windows.Forms.PropertyGrid によって Misc カテゴリに関連付けられます。 CategoryAttribute のコンストラクタにカテゴリ名を指定することにより、任意の名前でカテゴリを新規作成できます。

Category プロパティは、属性に対応するカテゴリの名前を示します。 Category プロパティは、カテゴリ名の透過なローカリゼーションも提供します。

継承時の注意: 定義済みの名前以外のカテゴリ名を使用し、カテゴリ名をローカライズする場合は、 GetLocalizedString メソッドをオーバーライドする必要があります。また、ローカリゼーションに独自のロジックを採用する場合は、 Category プロパティをオーバーライドできます。

CategoryAttribute クラスは、次の共通カテゴリを定義します。

カテゴリ 説明
Action 実行できるアクションに関連するプロパティ。
Appearance エンティティの外観に関連するプロパティ。
Behavior エンティティの動作に関連するプロパティ。
Data データおよびデータ ソース管理に関連するプロパティ。
Default 既定カテゴリに分類されるプロパティ。
Design デザイン時だけ使用できるプロパティ。
DragDrop ドラッグ アンド ドロップ操作に関連するプロパティ。
Focus フォーカスに関連するプロパティ。
Format 書式指定に関連するプロパティ。
Key キーボードに関連するプロパティ。
Layout レイアウトに関連するプロパティ。
Mouse マウスに関連するプロパティ。
WindowStyle トップ レベル フォームのウィンドウ スタイルに関連するプロパティ。

詳細については、「 属性の概要 」および「 属性を使用したメタデータの拡張 」を参照してください。

使用例

[Visual Basic, C#, C++] MyImage プロパティを作成する例を次に示します。このプロパティには、 DescriptionAttributeCategoryAttribute の 2 つの属性があります。

 
<Description("The image associated with the control"), _
    Category("Appearance")> _
Public Property MyImage() As Image
    
    Get
        ' Insert code here.
        Return image1
    End Get
    Set
        ' Insert code here.
    End Set 
End Property


[C#] 
[Description("The image associated with the control"),Category("Appearance")] 
 public Image MyImage {
    get {
       // Insert code here.
       return image1;
    }
    set {
       // Insert code here.
    }
 }

[C++] 
[Description(S"The image associated with the control"),Category(S"Appearance")]
__property System::Drawing::Image* get_MyImage() {
    // Insert code here.
    return m_Image1;
}

__property void set_MyImage( System::Drawing::Image* ) {
    // Insert code here.
}

[Visual Basic, C#, C++] MyImage のカテゴリを取得する例を次に示します。最初に、オブジェクトのすべてのプロパティを保持する PropertyDescriptorCollection を取得します。次に、 PropertyDescriptorCollection にインデックスを付けて、 MyImage を取得します。そして、このプロパティの属性を返し、その属性を変数 attributes に保存します。

[Visual Basic, C#, C++] 最後に、 AttributeCollection から CategoryAttribute を取得し、取得した情報をコンソール画面に書き込むことによって、カテゴリを出力します。

 
' Gets the attributes for the property.
Dim attributes As AttributeCollection = _
    TypeDescriptor.GetProperties(Me)("MyImage").Attributes

' Prints the description by retrieving the CategoryAttribute. 
' from the AttributeCollection.
Dim myAttribute As CategoryAttribute = _
    CType(attributes(GetType(CategoryAttribute)), CategoryAttribute)
    Console.WriteLine(myAttribute.Category)

[C#] 
// Gets the attributes for the property.
 AttributeCollection attributes = 
    TypeDescriptor.GetProperties(this)["MyImage"].Attributes;
 
 // Prints the description by retrieving the CategoryAttribute.
 // from the AttributeCollection.
 CategoryAttribute myAttribute = 
    (CategoryAttribute)attributes[typeof(CategoryAttribute)];
 Console.WriteLine(myAttribute.Category);

[C++] 
// Gets the attributes for the property.
 AttributeCollection* attributes =
    TypeDescriptor::GetProperties(this)->Item[S"MyImage"]->Attributes;

 // Prints the description by retrieving the CategoryAttribute.
 // from the AttributeCollection.
 CategoryAttribute* myAttribute =
    static_cast<CategoryAttribute*>(attributes->Item[__typeof(CategoryAttribute)]);
 Console::WriteLine(myAttribute->Category);

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.ComponentModel

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System (System.dll 内)

参照

CategoryAttribute メンバ | System.ComponentModel 名前空間 | Attribute | PropertyDescriptor | EventDescriptor