2009-05-04 2 views
5

オーケーフォーム親フォームの - >組み込みフォームコントロールまたはユーザーコントロールとして

// Embedd the child form in the this Parent 
     WinFormCustomHandling.ShowFormInContainerControl(pnlModuleHost, _frmWWCModuleHost); 

これは、私の前の質問に応じてくれHEREに与えられました。

私はこれで進歩してきましたが、埋め込まれたフォームの複数のレイヤーが起こるのを待っている災害であり、ユーザーコントロールがポップアップし続けるという不安を感じ続けています。誰も私には、ユーザーコントロールとフォームの埋め込みの使用に関するいくつかの具体的なアドバイスを提供できますか?

これまで私の以前の質問を参考にしてください。 HERE

また、私の現在の埋め込みフォームレイアウトがどのように見えるかのスクリーンショットはHEREです。

答えて

2

を見てかかることがあります私はUserControlを使用して、そのシンプルなものを考えると、デザイナーで何が起こっているかを見ることができます(必要な場合)。フォームには、コンテナ内のビューとして使用する場合は、 。

は、あなたの方法にこれを比較します

public static void DockControl(this Control control, UserControl userControl) 
      { 
       userControl.Dock = DockStyle.Fill; 
       control.Controls.Clear(); 
       control.Controls.Add(userControl); 
      } 
3

私の視点が、おそらくあなたが選ぶどの方向はあまり重要ではないということですありがとうございました。より標準的なアプローチであり、今後のより大きな柔軟性を可能にするため、ユーザーコントロールを使用することを選択します。たとえば、クライアントがあなたに来て、2つのタブを1つのタブにまとめたいとしたらどうでしょうか?ユーザーコントロールを使用すると、コントロールを単一のフォームにまとめてから、翌月に要件が再び変更されたときに、その2つのコントロールを1つのタブにまとめることができます。

あなたは、私が理解しているものからお互いに通信する必要がある、多くの部分を持つ、大きく複雑なアプリケーションを持っています。私は自分自身に尋ねるべき質問は、 "フォームまたはユーザーコントロール"ではないと思います。あなた自身に尋ねるべき質問は、「これはこのアプリの正しいアーキテクチャですか?」です。

私は、プラグイン型のアーキテクチャを組み込んだデザインは、あなたが持っている多くの可動部品のためのより適切かもしれないと思う...それとも、マイクロソフトのパターンとプラクティスコンポジットアプリケーションブロック(CAB

+0

興味深い、あなたは「プラグイン型」アーキテクチャによって何を意味するかを説明することは可能でしょうか?フォームが何をしているのかを抽象化し、それらの基本機能を実行するために異なるUCを持つことを指していますか? –

+0

ここでは、拡張可能なアーキテクチャを中心にアプリケーションを設計する上で素晴らしい記事があります。 http://www.code-magazine.com/Article.aspx?quickid=0801041 – Utensil

関連する問題