理論的にはフォームから派生することができますが、それはあなたがすべきではないことですか?直感的にそう思いますが、こんなルールは聞いたことがありません。
すでにFormから派生しているいくつかの具体的なクラスを意味します。たとえば、私が持っている場合class MyForm : Form
、質問は次のとおりです。私はから派生できMyForm
ますか?
理論的にはフォームから派生することができますが、それはあなたがすべきではないことですか?直感的にそう思いますが、こんなルールは聞いたことがありません。
すでにFormから派生しているいくつかの具体的なクラスを意味します。たとえば、私が持っている場合class MyForm : Form
、質問は次のとおりです。私はから派生できMyForm
ますか?
新しいWindowsフォームを作成するときは、フォームから派生する必要があります。Visual Studioで新しいフォームを作成する場合、取得するソースファイルはすでにFormから派生しています。
Windowsフォームの派生を妨げる厳格なルールはありません。それを行う正当な理由がある場合(たとえば、すべてのフォームでプロジェクト全体に共通するいくつかの機能を追加するなど)、先に進んでください。
共通のベースForm派生クラスからフォームを派生させることは完全に合理的であり、アプリケーションの標準的なルックアンドフィールを持つのに役立ちます。
フォームからクラスを派生させ、プロジェクト内のすべてのフォームをフォームから派生させることに成功しました。これにより、プロジェクト全体のポリシーを簡単に適用できます。すべてのフォームには一貫したルックアンドフィールがあります。また、各フォームにそのサイズと場所を簡単に記憶させることができました。
BaseFormから継承することを強くお勧めします。これにより、ベースに共通のコントロール(ボタンなど)を設定したり、背景色や画像を指定したりできるため、すべてのEditFormを同じように見せることが非常に簡単になります。グループ化できるすべての種類のフォームにも同じことが言えます。私は通常1つのBaseFormを持っており、次にその「グループ」(編集、リスト、ダイアログなど)に応じてBaseFormを持っています。
これにより、winappの外観がより一貫したものになります。
コードについても同じことが言えます。通常、編集フォームには同様のコードベースがあります。検証、保存ロジックなどです。このロジックをすべてベースフォームに配置してから、子フォームに実装できるいくつかの抽象メソッドを設定できます。
質問は、派生クラスが何をするかによって異なります。
フォームとそのような多くのエンドクラスは、多くの複雑なタスクを実行するように設計されており、コーディングしすぎずにフォーム関連のアクティビティを最大限に活用できます。
ルールは次のようになります。「単純なウィンドウ操作を実行する場合で、通常の動作を妨げない場合は、フォームから派生しない方がよいでしょう。
または、フォームの負荷が高いため、フォームではなく基本クラスからフォームを取得することで、メモリとCPU時間を節約できます。