2011-12-27 5 views
0

私はC#フォームアプリケーションを持っています。アプリケーションにはコンテンツ用のPanelがあります。コンテンツは、Outlookスタイルメニュー(アコーディオン)によって決定されます。すべてのメニュー項目がパネルに表示されると、パネルが非常に乱雑になります。だから私は、それぞれのメニュー項目のための別のウィンドウを持って、Windowを必要に応じてPanelに割り当てたいと思います。C#フォーム:パネルにウィンドウを表示

パネルにはどのようにウィンドウが表示されますか?以下の例では、ユーザーがアコーディオンのメニュー項目をクリックしたため、ウィンドウ(Form2)がパネルに表示されます。以下は赤色ですので、間違っていると思います。

panel.Form = new Form2(); 

次の原因でSystem.ArgumentExceptionが発生しています。

panel.Controls.Add(new Form2()); 

ご不明な点は初心者のご質問です。私はMFCの時間がたくさんあるC/C++の人です.C#UIは現時点では少しイライラしています。

ジェフ

+1

これは45分前からの同じ投稿です..? – MethodMan

+0

こんにちはDJ KRAZE - 'ウィンドウをペインに表示する'が自分の質問に移動しました(私はそれが簡単だと思っていましたが、明らかにそうではないと思いました)。以前の質問は編集されました。 – jww

+0

ハンス - あなたが答えると、私はあなたにポイントを与えます(それは私が必要とするもののように見えます)。 – jww

答えて

2

フォームは、まさにその–フォームです。
他の場所に簡単に埋め込むことはできません。

代わりにUserControlを使用してください。

+0

私はHansがそれを釘付けにしたと思う:[コントロールの中でWindowsフォームをホストできるか](http://stackoverflow.com/questions/7691468/can-i-host-a-windows-form-inside-a-control)。 – jww

+0

UserControlを使用する必要があります。それがそのために設計されたものです。 – SLaks

+0

SLakeに感謝します。 MFCでは、子ウィンドウを使用します(その比較的簡単です)。私はC#でWinFormsを使って子ウィンドウを作成する方法を知りませんでした。 – jww

関連する問題