次の方法で共有


Visual Basic でのコンポーネントの作成および使用

更新 : 2007 年 11 月

コンポーネントとは、System.ComponentModel.IComponent インターフェイスを実装するクラス、または IComponent を実装するクラスから直接または間接的に派生されたクラスです。.NET Framework のコンポーネントは、再利用可能なオブジェクトで、他のオブジェクトとやり取りでき、外部リソースの制御やデザイン時サポートが備わっています。

コンポーネントの重要な特徴の 1 つが、コンポーネントはデザイン可能だということです。つまり、コンポーネントであるクラスは Visual Studio 統合開発環境で使用できます。コンポーネントは、ツールボックスへの追加、フォームへのドラッグ アンド ドロップ、およびデザイン サーフェイスでの操作が可能です。コンポーネントのデザイン時サポートは .NET Framework に組み込まれているため、コンポーネント開発者は追加の作業を行わずに基本のデザイン時機能を利用できます。

デザイン可能という点では、コントロール もコンポーネントに似ています。しかし、コントロールはユーザー インターフェイスを持つのに対し、コンポーネントは持ちません。コントロールは、Control または Control のいずれかの基本コントロール クラスを派生する必要があります。

コンポーネントの作成が必要な状況

デザイン サーフェイス (Windows フォーム デザイナ、Web フォーム デザイナなど) で使用するクラスがユーザー インターフェイスを持たない場合は、そのクラスはコンポーネントにする必要があり、IComponent を実装するか、または IComponent を直接または間接的に実装するクラスから派生させます。

Component クラスおよび MarshalByValueComponent クラスは IComponent インターフェイスの基本実装です。両クラスの主要な違いは、Component クラスは参照渡しでマーシャリングされるのに対し、IComponent は値渡しでマーシャリングされるということです。実装のためのガイドラインを次に示します。

  • コンポーネントを参照渡しでマーシャリングする必要がある場合には、Component から派生します。

  • コンポーネントを値渡しでマーシャリングする必要がある場合には、MarshalByValueComponent から派生します。

  • 単一継承のためにいずれかの基本実装からコンポーネントを派生できない場合には、IComponent を実装します。

デザイン時サポートの詳細については、「コンポーネントのデザイン時属性」および「デザイン時サポートの拡張」を参照してください。

コンポーネントのクラス

System.ComponentModel 名前空間には、コンポーネントやコントロールの実行時動作およびデザイン時動作を実装するためのクラスが用意されています。この名前空間には、属性コンバータと型コンバータの実装、データ ソースとの連結、およびコンポーネントのライセンス処理のための基本クラスとインターフェイスが含まれています。

中心となるコンポーネント クラスを以下に示します。

  • ComponentIComponent インターフェイスの基本実装です。このクラスによりアプリケーション間でオブジェクトを共有できるようになります。

  • MarshalByValueComponentIComponent インターフェイスの基本実装です。

  • ContainerIContainer インターフェイスの基本実装です。このクラスは、いくつかのコンポーネントをカプセル化します (コンポーネントがない場合もあります)。

コンポーネントのライセンス処理に使用する主なクラスを以下に示します。

  • License。すべてのライセンスの抽象基本クラスです。ライセンスは、コンポーネントの特定のインスタンスに対して付与されます。

  • LicenseManager。コンポーネントにライセンスを追加し、LicenseProvider を管理するためのプロパティおよびメソッドが用意されています。

  • LicenseProvider。ライセンス プロバイダを実装するための抽象基本クラスです。

  • LicenseProviderAttribute。クラスに対して使用する LicenseProvider クラスを指定します。

コンポーネントの説明や永続化に一般的に使用するクラスを以下に示します。

  • TypeDescriptor。属性、プロパティ、イベントなど、コンポーネントの特性についての情報を提供します。

  • EventDescriptor。イベントについての情報を提供します。

  • PropertyDescriptor。プロパティについての情報を提供します。

関連項目

参照

処理手順

方法 : Windows フォームでデザイン時サポートにアクセスする

方法 : デザイン モードでコントロールの外観と動作を拡張する

方法 : デザイン モードでコントロールのカスタム初期化を行う