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
プロパティを作成する例を次に示します。このプロパティには、 DescriptionAttribute と CategoryAttribute の 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