次の方法で共有


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

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

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

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

コンポーネントを作成する状況

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

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

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

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

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

コンポーネントのクラス

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

核となるコンポーネント クラスは次のとおりです。

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

  • MarshalByValueComponent. IComponent インターフェイスの基本実装。

  • Container. IContainer インターフェイスの基本実装。 このクラスは、0 個以上のコンポーネントをカプセル化します。

コンポーネントのライセンス処理に使用するクラスのいくつかを次に示します。

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

  • LicenseManager. コンポーネントにライセンスを追加し、LicenseProvider を管理するためのプロパティとメソッドを提供します。

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

  • LicenseProviderAttribute. クラスで使用する LicenseProvider クラスを指定します。

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

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

  • EventDescriptor. イベントに関する情報を提供します。

  • PropertyDescriptor. プロパティに関する情報を提供します。

コントロールとコンポーネントの作成時のトラブルシューティング
一般的な問題に対処する方法について説明します。

関連項目