2

C#でUserControlとCustomControlの違いは何ですか?WindowsFormを使用していますか?


2 답변


4

WindowsアプリケーションとWebアプリケーションの両方にカスタムコントロールとユーザーコントロールがあります。 Windowsアプリケーションコントロールには.csエクステンションがあります。

非常に一般的な意味では、ユーザーコントロールを作成する方が簡単です。テキストボックス、ラベルなどの既存のコントロールをフォームにドラッグすることができます。カスタムコントロールは、作成するのが一般的に難しく(時間がかかる)、柔軟性、カスタマイズ性、統合性が向上します。

一言で言えば、大きな違いは次のとおりです。

ユーザーコントロールは、既存のコントロールで構成されています。このことから、複合制御と呼ばれることもあります。典型的な例はログインフォームです。フォームとすべてのロジックは、この「再利用可能な」ユーザーコントロールに含まれています。

カスタムコントロールは、作成するコントロールです。 Windowsフォームでは、上の例のようにOnPaintメソッドをオーバーライドすることを意味します。カスタムコントロールは、ユーザーコントロールと同じレベルのデザインタイムサポートを持たない(つまり、既存のコントロールをドラッグアンドドロップするなど)。カスタムコントロールは、一般的に、再利用可能なコンポーネントと考えられ、Visual Studioのツールボックスに追加できるので、通常はビジネスやコードに固有のものではありません。

ここでは、いくつかのコード例を使ってさまざまなフォームに入るリンクを示します。http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsCreatingControls.aspx


  • "カスタムコントロールにはビジュアルインターフェイスがありません"この声明は正確ですか?私は、 "カスタム" CustomControlでは、開発者がコントロールの視覚的な側面(描画範囲、クライアントエリア、シェイプなど)を描画していることを意味していました。私は、CustomControlでは、OnPaintメソッドなどにもっと多くの時間を費やしていると思っていました。 - Kenneth K.
  • -1、あなたはASP.Netについて話しています、OPはwinformsについて尋ねました。 - ken2k
  • @ ken2k - 謝罪、私はWindowsフォームをカバーするために私の答えを更新しました。 - Scott Sellers
  • @Digger私はあなたが編集したときにdownvoteを削除しましたが、この特定の質問はASP.Netに関するものではないので、おそらくあなたはASP.Netの部分を削除することができますか? - ken2k
  • @ ken2k - 私は今asp.netビットを削除しました。私は一度に多くのことをやろうとしているので、質問を誤解しました。私の仕事やサーフィンのスタックオーバーフローのように。今、そのokを願っています。 - Scott Sellers

3

グループ内の多くのコントロールをグループ化する場合は、UserControlを使用できます。つまり、コントロールのグループを作成します。これは、プロジェクト内の異なる部分で同じグループをコントロール上で使用したいときに便利です。

既存のコントロールを拡張する場合は、CustomControlを使用できます。コントロールは異なるプロジェクトから参照できるDLLファイルでコンパイルされます。

リンクされた質問


最近の質問