私は最近、必要なイベントにフックして追加機能を実行するComponent
だけのカスタム派生クラスを作成することにより、さまざまな WinForms コントロールのいくつかにカスタム機能を追加しています。Control
たとえばListBox
、アプリケーションのいくつかの異なるコントロールにドラッグ アンド ドロップ機能を追加したかったのでDragAndDropListBoxComponent
、クラスから継承するを作成し、Component
この新しいコンポーネントをフォームに追加して、機能を追加する必要がありました。DragAndDropListBoxComponent
のListBox
プロパティを、機能を追加したいリスト ボックスに追加しました。
標準機能を拡張するこの方法が気に入っています。同じものに対してControl
複数のカスタム動作タイプを作成し、それらを組み合わせて興味深い効果を得ることができるからです。これはまた、継承よりも合成の原則を支持します。Component
Control
Component class list this を使用することに気付くまで、しばらく時間がかかったようです。これは、オンラインでそのような方法で使用されているのを見たことがないためです。したがって、私の質問です。カスタム コンポーネント クラスは一般的にこのように使用されますか?