この質問には既に回答があります:
C#でUserControlとCustomControlの違いは何ですか?WindowsFormを使用していますか?
WindowsアプリケーションとWebアプリケーションの両方にカスタムコントロールとユーザーコントロールがあります。 Windowsアプリケーションコントロールには.csエクステンションがあります。
非常に一般的な意味では、ユーザーコントロールを作成する方が簡単です。テキストボックス、ラベルなどの既存のコントロールをフォームにドラッグすることができます。カスタムコントロールは、作成するのが一般的に難しく(時間がかかる)、柔軟性、カスタマイズ性、統合性が向上します。
一言で言えば、大きな違いは次のとおりです。 strong>
ユーザーコントロールは、既存のコントロールで構成されています。このことから、複合制御と呼ばれることもあります。典型的な例はログインフォームです。フォームとすべてのロジックは、この「再利用可能な」ユーザーコントロールに含まれています。
カスタムコントロールは、作成するコントロールです。 Windowsフォームでは、上の例のようにOnPaintメソッドをオーバーライドすることを意味します。カスタムコントロールは、ユーザーコントロールと同じレベルのデザインタイムサポートを持たない(つまり、既存のコントロールをドラッグアンドドロップするなど)。カスタムコントロールは、一般的に、再利用可能なコンポーネントと考えられ、Visual Studioのツールボックスに追加できるので、通常はビジネスやコードに固有のものではありません。
ここでは、いくつかのコード例を使ってさまざまなフォームに入るリンクを示します。http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsCreatingControls.aspx
グループ内の多くのコントロールをグループ化する場合は、UserControlを使用できます。つまり、コントロールのグループを作成します。これは、プロジェクト内の異なる部分で同じグループをコントロール上で使用したいときに便利です。
既存のコントロールを拡張する場合は、CustomControlを使用できます。コントロールは異なるプロジェクトから参照できるDLLファイルでコンパイルされます。