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 名前空間には、コンポーネントやコントロールの実行時動作およびデザイン時動作を実装するためのクラスが用意されています。この名前空間には、属性コンバータと型コンバータの実装、データ ソースとの連結、およびコンポーネントのライセンス処理のための基本クラスとインターフェイスが含まれています。
中心となるコンポーネント クラスを以下に示します。
Component。IComponent インターフェイスの基本実装です。このクラスによりアプリケーション間でオブジェクトを共有できるようになります。
MarshalByValueComponent。IComponent インターフェイスの基本実装です。
Container。IContainer インターフェイスの基本実装です。このクラスは、いくつかのコンポーネントをカプセル化します (コンポーネントがない場合もあります)。
コンポーネントのライセンス処理に使用する主なクラスを以下に示します。
License。すべてのライセンスの抽象基本クラスです。ライセンスは、コンポーネントの特定のインスタンスに対して付与されます。
LicenseManager。コンポーネントにライセンスを追加し、LicenseProvider を管理するためのプロパティおよびメソッドが用意されています。
LicenseProvider。ライセンス プロバイダを実装するための抽象基本クラスです。
LicenseProviderAttribute。クラスに対して使用する LicenseProvider クラスを指定します。
コンポーネントの説明や永続化に一般的に使用するクラスを以下に示します。
TypeDescriptor。属性、プロパティ、イベントなど、コンポーネントの特性についての情報を提供します。
EventDescriptor。イベントについての情報を提供します。
PropertyDescriptor。プロパティについての情報を提供します。
関連項目
クラス、コンポーネント、コントロール
コンポーネントとコントロールの定義を示し、それらとクラスの違いについて説明します。コンポーネントの作成
コンポーネントの使用を始めるためのロードマップです。コンポーネント作成のチュートリアル
コンポーネント プログラミングの詳細な手順について説明するトピックにリンクします。コンポーネントのクラス
クラスがコンポーネントになるために必要な要素、コンポーネントの機能を公開する方法、コンポーネントへのアクセスを制御する方法、およびコンポーネントのインスタンスをどのように作成するかを制御する方法について説明します。コントロールとコンポーネントの作成時のトラブルシューティング
一般的な問題に対処する方法について説明します。
参照
処理手順
方法 : Windows フォームでデザイン時サポートにアクセスする