次の方法で共有


AttributeCollection クラス

属性のコレクションを表します。

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

System.Object
   System.ComponentModel.AttributeCollection

<ComVisible(True)>
Public Class AttributeCollection   Implements ICollection, IEnumerable
[C#]
[ComVisible(true)]
public class AttributeCollection : ICollection, IEnumerable
[C++]
[ComVisible(true)]
public __gc class AttributeCollection : public ICollection,   IEnumerable
[JScript]
public
   ComVisible(true)
class AttributeCollection implements ICollection,   IEnumerable

スレッドセーフ

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

解説

AttributeCollection クラスは読み取り専用であり、属性の追加または削除を行うためのメソッドは実装していません。これらのメソッドを実装するには、このクラスから継承する必要があります。

コレクション内に存在する属性の数を調べるには、 Count プロパティを使用します。

また、このクラスのメソッドを使用して、コレクションに対してその内容を照会することもできます。指定した属性または属性配列がコレクション内に存在するかどうかを確認するには、 Contains を呼び出します。指定した属性または属性配列がコレクション内に存在し、その属性の値がコレクション内の値と同じかどうかを確認するには、 Matches を呼び出します。

ほとんどの属性には既定値がありますが、必須ではありません。属性に既定値がない場合、型を取るインデックス付きプロパティは null 参照 (Visual Basic では Nothing) を返します。独自の属性を定義する場合は、引数をとらないコンストラクタを提供するか、"Default" という名前の属性型のパブリック静的フィールドを定義することによって、既定値を宣言できます。

使用例

属性を使用するのは、属性が設定されているかどうかを確認するか、属性の値にアクセスする場合です。最初の例は、コレクション内に BrowsableAttribute が設定されているかどうかを確認します。この例は、 button1textBox1 を前提としています。ボタンの DescriptionAttribute の実際の値を取得する例を次に示します。この例は、フォーム上に button1textBox1 が作成されていることを前提としています。

 
Private Sub ContainsAttribute()
    ' Creates a new collection and assigns it the attributes for button1.
    Dim attributes As AttributeCollection
    attributes = TypeDescriptor.GetAttributes(button1)
    
    ' Sets an Attribute to the specific attribute.
    Dim myAttribute As BrowsableAttribute = BrowsableAttribute.Yes
    
    If attributes.Contains(myAttribute) Then
        textBox1.Text = "button1 has a browsable attribute."
    Else
        textBox1.Text = "button1 does not have a browsable attribute."
    End If
End Sub 'ContainsAttribute

[C#] 
private void ContainsAttribute() {
    // Creates a new collection and assigns it the attributes for button1.
    AttributeCollection attributes;
    attributes = TypeDescriptor.GetAttributes(button1);
 
    // Sets an Attribute to the specific attribute.
    BrowsableAttribute myAttribute = BrowsableAttribute.Yes;
 
    if (attributes.Contains(myAttribute))
       textBox1.Text = "button1 has a browsable attribute.";
    else
       textBox1.Text = "button1 does not have a browsable attribute.";
 }

[C++] 
void ContainsAttribute()
{
    // Creates a new collection and assigns it the attributes for button1.
    AttributeCollection*    attributes;
    attributes = TypeDescriptor::GetAttributes( button1 );

    // Sets an Attribute to the specific attribute.
    BrowsableAttribute* myAttribute = BrowsableAttribute::Yes;

    if ( attributes->Contains( myAttribute ))
        textBox1->Text = S"button1 has a browsable attribute.";
    else
        textBox1->Text = S"button1 does not have a browsable attribute.";
}

[JScript] 
public function ContainsAttribute() {
    // Creates a new collection and assigns it the attributes for button1.
    var attributes : AttributeCollection;
    attributes = TypeDescriptor.GetAttributes(button1);
 
    // Sets an Attribute to the specific attribute.
    var myAttribute : BrowsableAttribute  = BrowsableAttribute.Yes;
 
    if (attributes.Contains(myAttribute))
       textBox1.Text = "button1 has a browsable attribute.";
    else
       textBox1.Text = "button1 does not have a browsable attribute.";
 }

[Visual Basic] 
Private Sub GetAttributeValue()
    ' Creates a new collection and assigns it the attributes for button1.
    Dim attributes As AttributeCollection
    attributes = TypeDescriptor.GetAttributes(button1)
    
    ' Gets the designer attribute from the collection.
    Dim myDesigner As DesignerAttribute
    myDesigner = CType(attributes(GetType(DesignerAttribute)), DesignerAttribute)
    
    ' Prints the value of the attribute in a text box.
    textBox1.Text = myDesigner.DesignerTypeName
End Sub 'GetAttributeValue

[C#] 
private void GetAttributeValue() {
    // Creates a new collection and assigns it the attributes for button1.
    AttributeCollection attributes;
    attributes = TypeDescriptor.GetAttributes(button1);
 
    // Gets the designer attribute from the collection.
    DesignerAttribute myDesigner; 
    myDesigner = (DesignerAttribute)attributes[typeof(DesignerAttribute)];
 
    // Prints the value of the attribute in a text box.
    textBox1.Text = myDesigner.DesignerTypeName;
 }

[C++] 
void GetAttributeValue() 
{
    // Creates a new collection and assigns it the attributes for button1.
    AttributeCollection* attributes;
    attributes = TypeDescriptor::GetAttributes( button1 );
 
    // Gets the designer attribute from the collection.
    DesignerAttribute* myDesigner; 
    myDesigner = dynamic_cast<DesignerAttribute*>( attributes->get_Item( __typeof( DesignerAttribute )));
 
    // Prints the value of the attribute in a text box.
    textBox1->Text = myDesigner->DesignerTypeName;
}

[JScript] 
public function GetAttributeValue() {
    // Creates a new collection and assigns it the attributes for button1.
    var attributes : AttributeCollection ;
    attributes = TypeDescriptor.GetAttributes(button1);
 
    // Gets the designer attribute from the collection.
    var myDesigner : DesignerAttribute ; 
    myDesigner = DesignerAttribute(attributes[DesignerAttribute.GetType()]);
 
    // Prints the value of the attribute in a text box.
    if(myDesigner)
        textBox1.Text = myDesigner.DesignerTypeName;
 }

必要条件

名前空間: 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 内)

参照

AttributeCollection メンバ | System.ComponentModel 名前空間 | Attribute | BrowsableAttribute | DescriptionAttribute