じゃんぬねっと日誌

ネタと雑記と時々プログラミング

目次

Blog 利用状況

ニュース

知ってたか?孔雀は堕天使の象徴なんだぜ。知ってたか?週末の栄はスイーツの聖域なんだぜ。

スポンサードリンク

運営サイト

  • C# と VB.NET の入門サイト

Blog Item

フィードメーター - じゃんぬねっと日誌

書庫

.NET における Windows Forms コントロールの呼称

.NET における Windows Forms コントロールの呼称は以下のとおり。(UI のないコンポーネントは除外しました)

  1. 基本コントロール
  2. 拡張コントロール (継承コントロール)
  3. 複合コントロール
  4. カスタム コントロール
  5. 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 コントロールから継承されたコントロールに複数のコントロールを詰め込みました。このコントロールはどのような呼称になるでしょう?

投稿日時 : 2007年6月24日 10:55

コメントを追加

# re: .NET における Windows Forms コントロールの呼称 2007/06/24 11:30 THREE-ONE

コントロール名が ***Panel なら拡張コントロールで、乗っかってるコントロールの機能に重視をおいた名前なら(例:パネルを継承してるけど ***ComboBox)複合って気もします。
UserControl から継承したコントロールに、単一のコントロールを乗っけて、機能を特化したコントロールを作ったらどうなんだ??ってことにもなりますし。
基本的に DLL にして共通化したいか、同じソリューション内でデザイナで扱いたいかで使い分けるのもアリだと思ってます。

# re: .NET における Windows Forms コントロールの呼称 2007/06/25 8:54 はね

コンテナコントロールでしょうか・・・
UserControlは、ContainerControl>ScrollableControl>Controlと継承されてますよね。
的、はずしてますか?・・・・

# re: .NET における Windows Forms コントロールの呼称 2007/06/25 10:29 未記入

この名称はあくまでも基礎技術の学習用のものであり、複数の技法を組合した技法は命名する事に意味はないんでは?

>System.Windows.Forms.Panel コントロールから継承されたコントロールに複数のコントロールを詰め込みました。このコントロールはどのような呼称になるでしょう?

この場合、Panel拡張コントロールに、複数のコントロールを詰め込んだ○○コントロール(○○は自分でつけた名前)でいいと思います。
さらにいえば、もともとWindowsではフォームはウィンドウ、コントロールはサブウィンドウだったから、サブウィンドウでいいかもしれませんね。それかいっそうのこと全てウィンドウでいいのかも・・・

# re: .NET における Windows Forms コントロールの呼称 2007/06/25 10:38 じゃんぬねっと

そのとおりでしょうね。それを言うなら「コントロール」という抽象的な言葉で済んでしまうわけです。ただ性格としてどちらかに (複合なのか拡張なのか) 傾くと思います。たとえば Panel 自体の機能を拡張していないならば、複合コントロールと何ら変わりありません。

タイトル  
名前  
URL
コメント