共通のテキスト ボックスとその他のユーザー入力コントロールのセットを持つ .net Windows アプリにいくつかのフォームがあります。各フォームのルック アンド フィールは同じですが、各フォームは異なるデータベース テーブルに読み込んで保存する必要があります。
コントロールをベース フォームに配置して継承するか、ユーザー コントロールを作成して各フォームにドロップする方がよいでしょうか。
共通のテキスト ボックスとその他のユーザー入力コントロールのセットを持つ .net Windows アプリにいくつかのフォームがあります。各フォームのルック アンド フィールは同じですが、各フォームは異なるデータベース テーブルに読み込んで保存する必要があります。
コントロールをベース フォームに配置して継承するか、ユーザー コントロールを作成して各フォームにドロップする方がよいでしょうか。
私は通常、より柔軟な UserControls を好みます。フォームのコンテキスト、またはその他の視覚的なコンテキストで使用して、データを表示または変更できます。UI デザインを別のダイアログから変更して、メイン フォーム内のインライン コントロールなどに何かを編集しなければならないケースがいくつかありました。
それ以外は好みの問題だと思います。
イベントに接続された使いやすいユーザーコントロールの背後にあるロジックによって異なります。共通のタスクがある場合は、基本クラスのサーバーコントロールを使用できます。
場合によります。複合モデル (ユーザー コントロールを使用) はよりクリーンですが、コントロールは呼び出し元のフォームを認識することができないため、ロジックをイベントとして渡す必要があります。これにより、ロジックが重複する場合があります。
継承を使用すると、基本クラスで共通コードを実装し、サブクラス フォームでいくつかのオーバーライドを実装して、柔軟な相互作用を実装できます。しかし、それには、サブクラスのすべての実装者が基本クラスのソース コードを認識している必要があり、混乱を招く可能性があります。
状況に応じて、両方の方法を使用します。変更せずにフォームにドロップするだけの機能的な LOGIC がある場合は、UserControls が適切だと思います。ただし、複数のフォーム間で共通の UI を複製して拡張するだけの場合は、おそらく視覚的な継承の方が適しています。