次の方法で共有


DesignerCategoryAttribute クラス

クラスのデザイナが特定のカテゴリに属していることを指定します。

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

System.Object
   System.Attribute
      System.ComponentModel.DesignerCategoryAttribute

<AttributeUsage(AttributeTargets.Class)>
NotInheritable Public Class DesignerCategoryAttribute   Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Class)]
public sealed class DesignerCategoryAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Class)]
public __gc __sealed class DesignerCategoryAttribute : public   Attribute
[JScript]
public
   AttributeUsage(AttributeTargets.Class)
class DesignerCategoryAttribute extends Attribute

スレッドセーフ

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

解説

ビジュアル デザイナは、デザイナ カテゴリを使用して、実装するデザイナの型を開発環境に通知できます。クラスにデザイナ カテゴリが提供されていない場合、開発環境では、そのクラスをデザインできる場合とできない場合があります。任意の名前のカテゴリを作成できます。

この属性でクラスをマークすると、属性は定数メンバに設定されます。コードでこの属性の値を確認するには、定数メンバを指定する必要があります。次の表の "説明" 列に、各値に設定される定数メンバを示します。

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

カテゴリ 説明
コンポーネント コンポーネントで使用されるデザイナ。属性は定数メンバ DesignerCategoryAttribute.Component に設定されます。
フォーム フォームで使用されるデザイナ。属性は定数メンバ DesignerCategoryAttribute.Form に設定されます。
デザイナ デザイナで使用されるデザイナ。属性は定数メンバ DesignerCategoryAttribute.Generic に設定されます。
空の文字列 ("")。 これは既定のカテゴリです。

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

使用例

[Visual Basic, C#, C++] MyForm というクラスを作成する方法を次の例に示します。 MyForm には、このクラスが DocumentDesigner を使用することを指定する DesignerAttribute と、 Form カテゴリを指定する DesignerCategoryAttribute という 2 つの属性があります。

 
<Designer("System.Windows.Forms.Design.DocumentDesigner, System.Windows.Forms.Design", _
    GetType(IRootDesigner)), DesignerCategory("Form")> _
Public Class MyForm
    
    Inherits ContainerControl
    ' Insert code here.
End Class 'MyForm

[C#] 
[Designer("System.Windows.Forms.Design.DocumentDesigner, System.Windows.Forms.Design", 
    typeof(IRootDesigner)),
    DesignerCategory("Form")]
    
 public class MyForm : ContainerControl {
    // Insert code here.
 }

[C++] 
[Designer(S"System.Windows.Forms.Design.DocumentDesigner, System.Windows.Forms.Design", 
          __typeof(IRootDesigner)),
          DesignerCategory(S"Form")]

__gc class MyForm : public ContainerControl {
    // Insert code here.
};

[Visual Basic, C#, C++] MyForm のインスタンスを作成する例を次に示します。そのクラスの属性を取得し、 DesignerCategoryAttribute を抽出してから、デザイナの名前を出力します。

 
Public Shared Function Main() As Integer
    ' Creates a new form.
    Dim myNewForm As New MyForm()
    
    ' Gets the attributes for the collection.
    Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(myNewForm)
    
    ' Prints the name of the designer by retrieving the
    ' DesignerCategoryAttribute from the AttributeCollection. 
    Dim myAttribute As DesignerCategoryAttribute = _
        CType(attributes(GetType(DesignerCategoryAttribute)), DesignerCategoryAttribute)
    Console.WriteLine(("The category of the designer for this class is: " + myAttribute.Category))
    Return 0
End Function 'Main

[C#] 
public static int Main() {
    // Creates a new form.
    MyForm myNewForm = new MyForm();
 
    // Gets the attributes for the collection.
    AttributeCollection attributes = TypeDescriptor.GetAttributes(myNewForm);
 
    /* Prints the name of the designer by retrieving the 
     * DesignerCategoryAttribute from the AttributeCollection. */
    DesignerCategoryAttribute myAttribute = 
       (DesignerCategoryAttribute)attributes[typeof(DesignerCategoryAttribute)];
    Console.WriteLine("The category of the designer for this class is: " + myAttribute.Category);
  
    return 0;
}

[C++] 
int main() {
    // Creates a new form.
    MyForm* myNewForm = new MyForm();

    // Gets the attributes for the collection.
    AttributeCollection* attributes = TypeDescriptor::GetAttributes(myNewForm);

    /* Prints the name of the designer by retrieving the 
    * DesignerCategoryAttribute from the AttributeCollection. */
    DesignerCategoryAttribute* myAttribute = 
        dynamic_cast<DesignerCategoryAttribute*>(attributes->Item[__typeof(DesignerCategoryAttribute)]);
    Console::WriteLine(S"The category of the designer for this class is: {0}", myAttribute->Category);

    return 0;
}

[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 ファミリ, .NET Compact Framework - Windows CE .NET

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

参照

DesignerCategoryAttribute メンバ | System.ComponentModel 名前空間 | Attribute | DesignerAttribute