2012-11-27 8 views
9

私はC#でWindowsフォームを使用してアプリケーションを作成していますが、Windowsフォームのすべてのコンテンツを完全に置き換えて別のものに置き換えたいと思っています。これを行う便利な方法はありますか?Windowsフォームのコンテンツを変更する

例:「スタート」をクリックするとメニューが表示され、メニューが消えてゲームが開始されます。私はXNAを使用していない、またはこのようなプロジェクト全体の要点のようなものを使用していません。

+0

で必要なものを活性化

form.Controls.AddRange(Pages.ToArray()); 

は、この質問に対する答えを参照してください。http://stackoverflow.com/questions/297526 /どのような - 最善の方法 - すべてのコントロールをフォーム上でコントロールをクリアする – 03Usr

+0

[この回答を参照してください(http://stackoverflow.com/questions/6953487/remove-hideタブコントロールを使用するタブコントロール(6954785#6954785)があります。 – Lii

答えて

7

切り替えたいユニークなコンテンツセットごとに1つずつPanelを使用します。最初のものを除いて、すべてのパネルを非表示にします。変数activePanelを作成します。 activePanelを現在表示されているパネル(つまり、最初のパネル)に設定します。

あなたは切り替える必要がある場合は、次の操作を行います

activePanel.Visible = false; 
activePanel = <Panel you want to open now>; //I mean the Control, not an ID or something. 
activePanel.Visible = true; 

別のアプローチは、動的に削除し、フォームにコントロールを追加することですが、この方法は、あなたがより多くのコード、hovewerを記述する必要があります、アプリケーションのメモリ占有量が少なくてすみます。

+0

ありがとう、これは動作するはずです。 – Jacco

4

これは私の作品:のようなすべてのコントロールの追加:次に

form.Controls[i].BringToFront(); 
関連する問題