次の方法で共有


IDesignerFilter.PreFilterAttributes(IDictionary) メソッド

定義

派生クラスでオーバーライドされた場合、デザイナーが TypeDescriptor を通じて公開する一連の属性に項目を追加できるようにします。

public:
 void PreFilterAttributes(System::Collections::IDictionary ^ attributes);
public void PreFilterAttributes (System.Collections.IDictionary attributes);
abstract member PreFilterAttributes : System.Collections.IDictionary -> unit
Public Sub PreFilterAttributes (attributes As IDictionary)

パラメーター

attributes
IDictionary

コンポーネントのクラスの Attribute オブジェクト。 属性のディクショナリ内でのキーは、属性の TypeId 値です。

注釈

このメソッドは、このインターフェイスを実装するデザイナーの関連コンポーネントが を介して公開する属性のディクショナリに項目を追加する方法を TypeDescriptor提供します。

属性のディクショナリ内のキーは、属性の型 ID です。 オブジェクトの型 Attributeは です。 このメソッドは、 の直前に PostFilterAttributes呼び出されます。

属性の型 ID には、任意のオブジェクトを指定できます。 既定では、 AttributeType プロパティの値として を TypeId 返します。 ディクショナリ内の 属性の をTypeIdチェックして、属性を識別する既知の 属性とTypeId等価にしたり、 を使用System.Reflectionして属性オブジェクト自体を識別したりできます。

既存の属性または継承された属性と同じ TypeId 属性がコンポーネントに追加されると、新しい属性によって古い属性が置き換えられます。 多くの属性の場合、同じ型の新しい属性によって、型の以前の属性が置き換えられます。 ただし、属性の一部の型は、 属性を選択的に区別する を返します TypeId 。 たとえば、 や などIRootDesigner、型に対してさまざまな種類の同時にアクティブなデザイナーを提供するために、 クラスは 属性とIDesignerDesignerAttribute基本デザイナー型の両方を一意に識別する を返TypeIdします。 DesignerAttributeコンストラクターを使用すると、特定の型に加えてデザイナーの基本デザイナーの型を指定できDesignerAttribute、これを反映する をTypeId返します。 したがって、既存DesignerAttributeの の基本デザイナー型と同じ型の基本デザイナー型を持つ新DesignerAttributeしい を追加すると、古い属性が新しい属性に置き換えられます。

注意 (実装者)

パラメーターを使用して attributes アクセスできるディクショナリを直接フィルター処理することも、そのままにすることもできます。 このメソッドをオーバーライドする場合は、独自のフィルター処理を実行した後に基本実装を呼び出します。

適用対象

こちらもご覧ください