これらはプロジェクトに追加できる3つの異なるものであり、その違いを理解しているかどうかはよくわかりません。これらはすべて、たとえば、を操作するときにコンポーネントツールボックスに表示されるようですForm
。それぞれの一般的な使用シナリオは何ですか?違いはなんですか?
回答:
ユーザーコントロール、カスタムコントロール、コンポーネントの主な違いは、継承ツリーのさまざまなレベルから継承することです。
MyComponent
|-> Component
MyCustomControl
|-> Control
|-> Component
MyUserControl
|-> ContainerControl
|-> ScrollableControl
|-> Control
|-> Component
つまり、さまざまなオプションを使用して、さまざまな量の配線済み機能を利用できます。
いつさまざまなオプションを使用しますか?(これらは考えや意見であり、真実ではありません)
UserControl
か?
私の意見では、最後の記述は正しくないと思います。私はさまざまな理由でユーザーコントロールを作成しています。
主な理由は、言うまでもなく、複数のコントロールをグループ化したインターフェイスを設計するためです。
最初にクラスライブラリを作成し、次にユーザーコントロールを追加します。これで、ユーザーコントロールの動作の背後にあるロジックの一部を変更する必要がある場合、非常に簡単に行うことができます。また、このクラスライブラリは複数回使用できます。
また、同じ上品なライブラリ内に、任意のユーザーコントロールで共有および使用できる複数のクラスを含めることができます。
これが、私がユーザーコントロールを使用する主な理由です。また、ユーザーコントロールまたはクラスライブラリに変更を加えた場合。ジョブを作成したら。dllはbinフォルダー内で動的に更新されます。
したがって、これを別のプロジェクトで参照している場合、これらの変更は新しいプロジェクトにも表示されます。
また、フォームやフォームにロードしたものと同じペイントルーチンを使用しません。
したがって、ユーザーコントロールは、非常にモジュール化できる機能を提供します。また、クラスライブラリの基本クラスを共有する複数のユーザーコントロールを持つことができます...したがって、ユーザーコントロールの目的は1つのプロジェクトだけではありません。その点で制限はありません。ジェフ
それらの主な違い- ユーザーコントロールは、単一のアプリケーションまたはプロジェクト内でのみ使用できる拡張子.ascxのページファイルですが、カスタムコントロールは、複数のアプリケーションで使用できるアセンブリ(dllファイル)です。
UserControl
が、実際には「複合」コントロール(他のコントロールから作成されたコントロール)であるように見えますが、カスタムコントロールは実際にはユーザーが設計したコントロールです。