GUI内でさまざまな機能を実行するための企業のプログラムをシミュレートするプロジェクトに取り組んでいます(VS2010でC#を使用)。現在、機能ごとに 1 つずつ、約 10 種類のフォームがあります (メニューとしての機能、さまざまなフォームへの記入、フォームの管理など)。これまでのところ、次のようなものを使用してきました。
Form1 myForm1 = new Form1();
myForm1.Show();
新しい画面を開く
this.Hide();
現在アクティブなフォームが終了したとき。(this.Close()
プログラム全体を閉じるようです)
これにより、フォームの右上にある X をクリックした後もプロセスが実行され続けるという問題が発生します (これは、非表示のフォームが適切に閉じられていないことが原因だと思います)。また、ユーザーがプロセスを十分に長く停止せずにプログラム内ナビゲーションを使用すると、フォームの絶え間ない生成と非表示がすべてのメモリを占有することになるのではないかと思います。
実際のところ、ユーザー ナビゲーションを可能にするために常に新しいウィンドウやフォームを開くことに依存しているプログラムはめったに見ません。インストーラーなどのプログラムは通常、何らかのイベントを使用して、現在表示されているコンテンツを非表示にし、新しいフォーム/ウィンドウに変更することなく新しいコンテンツを表示します。どうすればこれを行うことができますか?ボタン/テキストボックス/ラベルがすべて1つの画面に積み重ねられているが、隠されているか、それとももっと直感的に欠けているものがありますか?