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 クラスの例に基づいて構築されている例を次に示します。テキスト ボックス内のボタンのテキストに関する情報 (カテゴリ、説明、表示名) を出力します。この例は、 button1
と textbox1
がフォーム上でインスタンス化されていることを前提としています。
' 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