1. ホーム
  2. c#

[解決済み] ユーザーコントロール、カスタムコントロール、コンポーネントの違いは何ですか?

2023-05-13 04:52:54

質問

プロジェクトに追加できるものは3種類ありますが、違いがよくわかりません。これらはすべて、たとえば、コンポーネント ツールボックスで Form . それぞれの一般的な使用シナリオは何ですか?その違いは何ですか?

どのように解決するのですか?

ユーザーコントロール、カスタムコントロール、コンポーネントの主な違いは、継承ツリーの異なる階層から継承していることです。

MyComponent
   |-> Component

MyCustomControl
   |-> Control
          |-> Component

MyUserControl
   |-> ContainerControl
          |-> ScrollableControl
                 |-> Control
                        |-> Component

要するに、異なるオプションで異なる量のプリワイヤード機能を得ることができるわけです。

それぞれのオプションは、どのような場合に使うのでしょうか?(これは考えや意見であり、真実ではありません。)

  • を作成します。 コンポーネント を提供したい場合は 機能を提供したい場合 (タイマコンポーネント、データソースなど)
  • を作成します。 カスタムコントロール を持つコンポーネントを作りたい場合、完全な で制御できるコンポーネントを作りたい場合 であり、不要な機能を持ちたくない場合です。典型的なケースは、限られた機能しか持たない単純なコントロール(ボタンなど)です。
  • を作成します。 ユーザーコントロール にするのであれば 既存のコントロールを組み合わせる を再利用可能なビルディングブロックにする場合(例えば、リスト間で項目を移動できるボタン付きの2つのリストなど)。