3

理論的にはフォームから派生することができますが、それはあなたがすべきではないことですか?直感的にそう思いますが、こんなルールは聞いたことがありません。

すでにFormから派生しているいくつかの具体的なクラスを意味します。たとえば、私が持っている場合class MyForm : Form、質問は次のとおりです。私はから派生できMyFormますか?

4

6 に答える 6

5

新しいWindowsフォームを作成するときは、フォームから派生する必要があります。Visual Studioで新しいフォームを作成する場合、取得するソースファイルはすでにFormから派生しています。

于 2009-04-23T10:57:06.837 に答える
4

Windowsフォームの派生を妨げる厳格なルールはありません。それを行う正当な理由がある場合(たとえば、すべてのフォームでプロジェクト全体に共通するいくつかの機能を追加するなど)、先に進んでください。

于 2009-04-23T10:53:26.610 に答える
2

共通のベースForm派生クラスからフォームを派生させることは完全に合理的であり、アプリケーションの標準的なルックアンドフィールを持つのに役立ちます。

于 2009-04-23T11:42:02.627 に答える
1

フォームからクラスを派生させ、プロジェクト内のすべてのフォームをフォームから派生させることに成功しました。これにより、プロジェクト全体のポリシーを簡単に適用できます。すべてのフォームには一貫したルックアンドフィールがあります。また、各フォームにそのサイズと場所を簡単に記憶させることができました。

于 2009-04-23T12:12:44.017 に答える
1

BaseFormから継承することを強くお勧めします。これにより、ベースに共通のコントロール(ボタンなど)を設定したり、背景色や画像を指定したりできるため、すべてのEditFormを同じように見せることが非常に簡単になります。グループ化できるすべての種類のフォームにも同じことが言えます。私は通常1つのBaseFormを持っており、次にその「グループ」(編集、リスト、ダイアログなど)に応じてBaseFormを持っています。

これにより、winappの外観がより一貫したものになります。

コードについても同じことが言えます。通常、編集フォームには同様のコードベースがあります。検証、保存ロジックなどです。このロジックをすべてベースフォームに配置してから、子フォームに実装できるいくつかの抽象メソッドを設定できます。

于 2009-04-23T12:19:54.017 に答える
0

質問は、派生クラスが何をするかによって異なります。

フォームとそのような多くのエンドクラスは、多くの複雑なタスクを実行するように設計されており、コーディングしすぎずにフォーム関連のアクティビティを最大限に活用できます。

ルールは次のようになります。「単純なウィンドウ操作を実行する場合で、通常の動作を妨げない場合は、フォームから派生しない方がよいでしょう。

または、フォームの負荷が高いため、フォームではなく基本クラスからフォームを取得することで、メモリとCPU時間を節約できます。

于 2009-04-23T11:00:33.363 に答える