.NET における Windows Forms コントロールの呼称は以下のとおり。(UI のないコンポーネントは除外しました)
- 基本コントロール
- 拡張コントロール (継承コントロール)
- 複合コントロール
- カスタム コントロール
- ActiveX コントロール
1. は System.Windows.Forms.Control そのものを指します。基本は "Base" と読み替えます。"基本" というよりは "基底" と言った方が誤解がないのかもしれません。
2. は基本コントロールから継承されたコントロール (TextBox, ComboBox) から、さらに継承されたコントロール群を指します。多くの場合は NCL 標準の Windows Forms から継承されたものになります。コミュニティでは「カスタム コントロール」などと呼ばれてしまうコトが多いです。
3. は System.Windows.Forms.UserControl から継承されたコントロールです。コミュニティでは「(狭義の) ユーザーコントロール」などと呼ばれてしまうコトが多いです。広義で言えば「ただのコンテナ コントロールに複数のコントロールを詰め込んだもの」になりますが、狭義では System.Windows.Forms.UserControl から継承されたコントロールに限定されます。
4. は非常に曖昧ですが、System.Windows.Forms.Control からの継承されたコントロールすべてを指します。狭義では「System.Windows.Forms.Control から継承して自作したコントロール」を指します。この自作コントロールは、System.Windows.Forms.Control が UI を提供していないため UI 部分を自分で実装せねばなりません。上級者向きです。
拡張コントロールと複合コントロールの使い分けについてですが、コントロールの UI 部分とそのコントロールが提供している機能に着目すべきです。継承元のコントロールの全機能を引き継ぎ UI 部分に特に変更がない場合には拡張コントロールを選択します。それ以外の場合は軽々しく拡張コントロールを選択すべきではありません。
さて、System.Windows.Forms.Panel コントロールから継承されたコントロールに複数のコントロールを詰め込みました。このコントロールはどのような呼称になるでしょう?