2011-08-16 9 views
0

私はwinformアプリケーションを維持する必要があります。winformアプリケーションの設計/モーダルモデルの回避

モーダルウィンドウの連続です。 (例えば、いくつかの画面では、私は5つのモーダル画面を持つことができ、多くの問題があります)。

私はモーダルウィンドウから別のモデルに移行したいと思いますが、MDIスタイルを使用したくないです(時間がかかりすぎます)。

私の気持ちは、クラスを作成することです(すべてのフォームはこのフォームから継承します)。 constructeurでは、親フォームをパラメータに指定して処理し、非表示にします。この基本的な構造はうまくいくはずですが、私はフォームの緊密なイベントを処理する必要があります。

誰かに解決策がありますか?

+0

ごめんなさい、それはあなたが達成したいものを私に明確ではありません。あなたは、インターフェイスがモーダルで動作するようにしたいが、ShowDialogを使用しないでください。または、フォーカスを失ったときに自動的に非表示にする非モーダルダイアログを使用したいと思いますか?または、他の何か? – Benjol

+0

私はshowdialogの使用をやめたいと思います。私の考えは、モーダルダイアログを削除することです。小さなexempleが良くなる、私は2つのフォーム、最初に開いているメインを持っています。私は新しいダイアログ、例えばユーザーのリストを表示したいと思います。だから私は、ユーザーのリストを表示するときにメインダイアログを自動的に隠したいと思う。ユーザーのリストを閉じると、再びメインフォームが表示されます。 –

答えて

2

子フォームと親フォームのサイズが同じでもかまいませんか?もしそうなら、フォームを隠したり表示したりするのではなく、いくつかのパネルを重ね合わせ、BringToFrontを使って現在のものを表示することを検討します。これは魔法の窓で迷惑をかけるよりもクリーナーで苦痛が少ないようです...

を実行すると、「show in taskbar」プロパティを再生することを忘れないようにしてください。

(「自動的に」開閉窓を有し、かつ異なるサイズですが、あまりにもユーザーのためにかなり迷惑かもしれない)

+0

それはあなたより良い解決策に見えます –

+0

@Philippe、よろしくです。ちなみに、あなたは[this](http://area51.stackexchange.com/proposals/29480/french-language-usage)を見たことがありますか? – Benjol

+0

もう1つの選択肢は、「ポップアウト」スタイルのインターフェースを使用することです(「もっと...」ボタンで表示されることがあります) – Benjol

2

このようなUIのために覚えておくべき他のパラダイムは、あるフォームから次のフォームへと導くウィザード、または現在の各モーダルフォームが単一のUIの展開可能な領域として表示されるUIです。

+0

私はウィザードのパラダイムを使いたくありません。それは私のための解決策ではありません。 –

1

あなたは、子供として指定されたすべてのフォームのどこかにリファレンスを保持するのはどうですか?親ウィンドウが閉じるときはいつも、まず子ウィンドウを閉じます。それらの線に沿って何か。

関連する問題