2009-09-04 9 views
6

ユーザーコントロール - 特別な目的を果たしていますか?Visual C#でユーザーコントロールの目的は何ですか?

私が言う限り、彼らはフォームと違いはありません - 彼らは同じツールボックスと機能を持っています。

オーバーフォームを使用するのに適切な時間がありますか? 彼らは何が良いのかを理解することは興味深いでしょう。

答えて

10

これらを使用して、一連のコントロールとビヘイビアを再利用可能な方法でグループ化します。どこかのフォームに追加されていない限り、画面上にコントロールを表示することはできません。

良い例の1つがテキストボックスです。テキストボックスの横にラベルを付けるのは非常に一般的です。これを簡単にするためのユーザーコントロールを作成することができます。コントロールにラベルとテキストボックスをドロップして、プロパティを任意に公開し、ツールボックスに新しいコントロールを設定します。フォーム上にラベルとツールボックスを配置する必要はなく、フォームにこのコントロールをドロップするだけです別々に。

あなたは、それをあなたが置いたコントロールを「覚えている」パネルと考えることができます。もう一つ重要な部分があります。これらのコントロールにコードを入れて、カスタムコントロールに特別な動作を組み込むこともできます。

+0

本質的にパネルのようですが、別個のエンティティですか? – Ric

+1

鍵は、それらが再利用可能であることです。コントロールの複数のインスタンスをフォームに配置できます。 –

0

同じコントロールを多くのフォームで再利用できます。実際には、Windowsフォームの作成中に使用しているすべての項目がコントロールです。ユーザーコントロールは、.NETによって提供されるコントロールライブラリを拡張する追加のコントロールです。

7

ユーザーコントロールは、コントロールの再利用を目的としています。 アプリケーションの複数ページに検索ボックスが必要であるとします。検索ユーザーコントロールを作成し、表示するすべてのページにドロップすることができます。

これは、ページの再利用可能なブロックを集めるコンテナ以外のものではありません。

0

ASP.NETでは、ユーザーコントロールを使用してページを再利用可能なコンポーネントに分割できます。たとえば、ウェブサイトのさまざまな場所で使用できる検索ボックスを用意して、ユーザーコントロールを使用することができます。また、partial page cachingにも使用できます。ページの一部をキャッシュして、パフォーマンスを向上させることができます。

1

フォームには、コントロールのコレクション(たとえば、最小化ボタンや最大化ボタンなど)が必要な場合に必要としない余分な家具がたくさんあります。 Panel内のコントロールを単純にグループ化しただけでは、パネルと同じフォームにすべてのイベントハンドラがあります。ユーザーコントロールでは、イベントハンドラコードはフォームクラスではなくユーザーコントロールクラスにあります。

9

私は選択された答えに(少し)同意しなければなりません。再利用可能性は、UserControlの目的の一部に過ぎません。

すべてのコントロールは再利用可能です。ほとんどすべてのコントロールは、同じフォーム/ウィンドウ/パネル/などで再利用できます。たとえば、TextBoxはコントロールです。

  1. カスタムコントロール
    • 完全なカスタム、および再利用可能:

      は、独自の再利用可能なコントロールを作成する2つの方法があります。

    • 完全にコードで作成されています。
    • このようにしてコントロールが何を制御しているかについて、さらに細かく制御できます。
    • Visual Studioではデザイン性のために何も追加されていないため、軽量(通常)です。
    • ASP.Netのみ:使用または編集する "HTML"タイプのファイルはありません。
  2. ユーザーコントロール
    • 完全なカスタム、および再利用可能。
    • 部分的にVisual Studioでデザイナーに作成され、部分的にコードで作成されます。 (コードビハインド経由)
    • 視覚的な面からかなり扱いやすくなりました。
    • Visual Studio内の設計をサポートするために、フレームワークによって既存のコードが追加されているため、やや重いです。
    • ASP.Netのみ:.ascxファイル(基本的にHTML)を編集するだけで、外観を少し変更することができます。
関連する問題