2011-01-20 21 views
0

私は、ユーザがオープニングフォームに何らかのデータを入力するプログラムを作成しています。それに基づいて別のウィンドウが開きます。合計で私は周期的に動作する4人のguisを持っています。一連の異なるクリックの後に、あるフォームから他のフォームへ移動することができます。ゼロからフォームの一部をリロードしなければオープンフォームへの参照

(一部を実行する必要がある多くのクエリを持っているように)し、Form1、Form2を、form3.hide()、form4.show()に

方法

を持つことなく、私はそれを「正しく」行うことができます:D

おかげ

答えて

1

多くのフォームで作業するのではなく、1つのフォームでUserControlsを使用できます。 userControl1.BringToFront()メソッドを呼び出すと、アクティブなコントロールを簡単に切り替えることができます。

+0

+1コントロールのコレクションから前のウィザードのUserControlを削除し、新しいものを追加してください。それは...きれいな... –

0

あなたが常に同じ順序でそれらを表示する場合は、ウィザードのアプローチを使用することができますが、将来的にあなたが途中で新しいフォームを追加する場合は、それにも便利です通常、ウィザードアプリケーションは、すべてのフォームからすべての関連データを共有した構造を保持しています。お役に立てれば。

0

本当にありません。なぜでしょうか:

private static Form[] _forms = new Form[] { form1, form2, form3, form4 }; 
public static void ShowForm(Form form) { 
    foreach (Form f in _forms) { 
     if (f == form) 
      f.Show(); 
     else 
      f.Hide(); 
    } 
}