>>760 とりあえずWindowsFormとは関係ない話の独自実装なんですが、
Widgetが入れ子で別のWidgetを持ってる可能性があります。でのそのデータ構造はTreeとして扱おうとしています。
インスタンスのwidgetは描画などの際にはWidget型として、トラバースする際にはTreeNode<Widget>として扱われます。
これは一例なんですが、いずれにしてもいわゆる多重継承とかMixinを使いたくなるときがありますよね?
ある役割のクラスであるが同時にほかの役割も果たすようなものです。そういうのをインタフェースで定義するのはいいけれど実装がめんどくさいよねってことです。
C++なら実装継承できていたものをC#ではできない。ならば設計を変えるか実装方法の改良をするか。おのおのでいい方法がないかと意見を聞いてみたかったんです。