階層図を眺めていたら

Panelって何でContainerControlの下じゃないんだろう。Panelの説明には、おもいっきり「Panelは、ほかのコントロールを格納するコントロールです。」って書いてあるのに。
ContainerControlクラスで追加される主なものはActiveControlプロパティ。他にもほんの少々。Controlクラスがおデブさんでほとんどの役割を持ってしまってるので、ContainerControlはたいした役割を持ってないですね。

ControlクラスでControlsを追加してしまうのってなんでだろ。Labelの中にボタンを並べたりできるってこと?
あ、これって、例えばボタンを拡張してIcon+文字が載ってるボタンを簡単に作れるようにするためなのかな。

Controlのデブっちょ具合を見ているとMFCを思い出してしまった。シンプルな美しさより、現実的で便利な方向を選ぶのはMSらしいとこなのかも。
しかし、.NET2.0のメソッドやプロパティの増え方見てると、どこまでぶくぶく太るのか心配…。古いAPIの足かせが外れて、嬉々として機能を増やしてるように見えるなぁ。
C#も2.0で早くもごちゃごちゃしはじめたし。Keep simple! C++の轍を踏むな!
まあ、気にしてもしょうがないので、気にしないでおこっと。

ついでにこんなの見つけた。各言語のコントロールの比較。WinFormのCheckBoxが間違ってComboBoxになってるけど。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxgrflanguageequivalentsprogrammableobjects.asp