次の方法で共有


PropertyDescriptor クラス

クラスのプロパティの抽象化を提供します。

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

System.Object
   System.ComponentModel.MemberDescriptor
      System.ComponentModel.PropertyDescriptor
         System.ComponentModel.TypeConverter.SimplePropertyDescriptor

<ComVisible(True)>
MustInherit Public Class PropertyDescriptor   Inherits MemberDescriptor
[C#]
[ComVisible(true)]
public abstract class PropertyDescriptor : MemberDescriptor
[C++]
[ComVisible(true)]
public __gc __abstract class PropertyDescriptor : public   MemberDescriptor
[JScript]
public
   ComVisible(true)
abstract class PropertyDescriptor extends MemberDescriptor

スレッドセーフ

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

解説

プロパティの説明は、プロパティの名前、属性、そのプロパティが関連付けられているコンポーネント クラス、およびプロパティの型で構成されています。

PropertyDescriptor は、次のプロパティとメソッドを提供します。

  • Converter は、このプロパティの TypeConverter を格納しています。
  • IsLocalizable は、プロパティをローカライズする必要があるかどうかを示します。
  • GetEditor は、指定した型のエディタを返します。

PropertyDescriptor は、次の抽象 (Visual Basic では MustOverride) プロパティと抽象メソッドも提供します。

  • ComponentType は、プロパティが関連付けられているコンポーネントの型を格納します。
  • IsReadOnly は、プロパティが読み取り専用かどうかを示します。
  • PropertyType は、プロパティの型を取得します。
  • CanResetValue は、コンポーネントをリセットすると、コンポーネントの値が変化するかどうかを示します。
  • GetValue は、コンポーネントのプロパティの現在の値を返します。
  • ResetValue は、コンポーネントのプロパティの値をリセットします。
  • SetValue は、コンポーネントの値を別の値に設定します。
  • ShouldSerializeValue は、プロパティの値を永続化する必要があるかどうかを示します。

通常、抽象 (Visual Basic では MustOverride) メンバはリフレクションによって実装されます。リフレクションの詳細については、「 実行時の型情報の探索 」を参照してください。

使用例

[Visual Basic, C#, C++] PropertyDescriptorCollection クラスの例に基づいて構築されている例を次に示します。テキスト ボックス内のボタンのテキストに関する情報 (カテゴリ、説明、表示名) を出力します。この例は、 button1textbox1 がフォーム上でインスタンス化されていることを前提としています。

 
' Creates a new collection and assign it the properties for button1.
Dim properties As PropertyDescriptorCollection = TypeDescriptor.GetProperties(Button1)

' Sets an PropertyDescriptor to the specific property.
Dim myProperty As PropertyDescriptor = properties.Find("Text", False)

' Prints the property and the property description.
TextBox1.Text += myProperty.DisplayName & Microsoft.VisualBasic.ControlChars.Cr
TextBox1.Text += myProperty.Description & Microsoft.VisualBasic.ControlChars.Cr
TextBox1.Text += myProperty.Category & Microsoft.VisualBasic.ControlChars.Cr

[C#] 
// Creates a new collection and assign it the properties for button1.
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(button1);

// Sets an PropertyDescriptor to the specific property.
System.ComponentModel.PropertyDescriptor myProperty = properties.Find("Text", false);

// Prints the property and the property description.
textBox1.Text = myProperty.DisplayName+ '\n' ;
textBox1.Text += myProperty.Description + '\n';
textBox1.Text += myProperty.Category + '\n';

[C++] 
// Creates a new collection and assign it the properties for button1.
PropertyDescriptorCollection* properties = TypeDescriptor::GetProperties(button1);

// Sets an PropertyDescriptor to the specific property.
System::ComponentModel::PropertyDescriptor* myProperty = properties->Find(S"Text", false);

// Prints the property and the property description.
textBox1->Text = String::Concat( myProperty->DisplayName, S"\n" ) ;
textBox1->Text = String::Concat( textBox1->Text, myProperty->Description, S"\n" );
textBox1->Text = String::Concat( textBox1->Text, myProperty->Category, S"\n" );

[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 内)

参照

PropertyDescriptor メンバ | System.ComponentModel 名前空間 | MemberDescriptor | Attribute | DefaultValueAttribute