1

1 つの機能を持つ 1 つのメイン フォームを持つアプリケーションを作成したい = 新しいフォームを追加します。

フォームがどのように作成されるかわかりません。フォームはユーザーによって動的に作成されます (メイン フォームからの AddForm メソッド)。

すべてのサブ フォームは同じですが、一部の prop は異なるパラメーターを受け取ります (ctor またはそれ以降にある可能性があります)。

メイン フォームを閉じたときに、すべてのフォームを閉じることができるようにしたいと考えています。

新しいフォームが表示される前に、おそらくShowDialogメソッドを使用して設定フォームを表示し(フォームパラメータを取得する)、フォームの検証チェックを行い、フォームが検証された場合にのみ新しいフォームが表示され、そうでない場合(またはユーザーがキャンセルする場合) ) フォームは破棄されます。

MDI については知っていますが、実際には他の方法を好みます

何か案は?

ありがとう!

4

2 に答える 2

1

メイン フォームが閉じているときにすべてのフォームを閉じるのはやや簡単です。「子」フォームの Show() メソッドでメイン フォーム参照を渡すだけです。たとえば、メインから子を表示する場合は、次のようにします。

child.Show(これ);

これは、メイン フォームが実際の「プログラムのメイン フォーム」ではなく、すべての「子」フォームを閉じたい場合に行う必要があります。

ただし、これらすべてを一緒に配線することは、この目的のために、おそらく ScreenRepository と呼ばれる特別なクラスで行うことが望ましいでしょう。このクラスでは、いつでも開いているフォームのコレクションがあり、フォームの作成をこのクラスに任せます (このクラスがフォームの親を自動的に挿入するように) など... このクラスを持つと、簡単に再アクティブ化できます ( focus) 他のフォームの背後にある場合はフォーム、必要に応じて新しいフォームを作成するなど...

于 2011-06-16T08:44:30.157 に答える
0

アイデアは単純です。最初にメインフォームを開き、必要に応じて他のフォームを開いて、メインフォームを閉じると、残りのフォームも閉じられるアプリケーションを作成します。GIMPのように。

于 2011-06-16T08:26:00.897 に答える