2009-05-02 17 views
2

私のアプリケーションは拡大していますが、reqsはいつも開いているウィンドウが1つだけであるように指示しています。ノーデパッドはメニューがあり、メニューアイテムはそれぞれ異なる機能です一度に1つのウィンドウを開くことはできません。単一フォームWindowsフォームアプリケーションのデザインパターン

Windowsフォームに関して、私はメインフォーム内にフォームを配置することを考えていました。それから私は、ユーザーメニューの選択に応じて必要な埋め込みフォームを読み込むことができます。または、私はメインフォーム(およびそれらのイベントを動的にユーザーメニューの選択に応じて)にコントロールを追加することができます。私はそのためにプレゼンタークラスを使用します。

これは私が使用する2つのソリューションです。あなたはそれをより良くするためのヒント/経験がありますか?

私は今、私のアプリケーションの一部を書き直さなければならないことを認識していますが、私は最初から始めているようです。

+0

JPの回答によれば、SDI/MDIを記述しようとしているように聞こえますが、質問の言語は実際には意味がありません。可能であれば、明確にしてください。 –

答えて

3

フォームを埋め込んではいけません。フォームの対象ではありません。それは必要ではありません。

UserControlsにモジュール/セクションのUIを配置します。これらのUserControlsは、メインフォームまたはMDI ChildWindowsまたはTabPagesに直接埋め込むことができます。...

Base UserControl(Visual継承)および/または共通機能を実装するためのインターフェースを含む。

+0

必要。何かチュートリアル(このプラクティスを行う方法を示す単純なもの)を持っていますか?ありがとう! – sarsnake

0

あなたの説明はMultiple-Document Interface (MDI) Applicationsのようです。幸運にも、WinFormsのMDIには大きなサポートがあります。ここでは簡単にintroです。

+0

私はこれをアップホートしたいと思いますが、質問の言語が不明なので質問に答えているかどうかは100%確信していません。 –

+0

私はタグだけを行ったので、C#winformの場合は適用されます。 :) –

+0

AdamRalph、申し訳ありませんが明確ではありません。私のアプリケーションはExcelではなくNodepadに似ているはずです。 Excelではいくつかのウィンドウを開くことができますが、メモ帳でクリックするたびにドキュメントが開き、前のウィンドウが閉じます。これがはっきりしていることを願っています。したがって、MDIは私にとっては意味がありません。「MDI(Multiple-Document Interface)アプリケーションを使用すると、複数のドキュメントを同時に表示でき、各ドキュメントはそれぞれのウィンドウに表示されます」 – sarsnake

0

あなたの要件が「1つのウィンドウ - 複数の機能性」であれば、私は確かに構成可能なUIスタイルの開発に行くでしょう。 Smart Client Software Factoryは良い出発点です。

関連する問題