パブリック(静的ではない)変数「Var」で何らかの処理を行うFormXという名前のフォームを開くと。「Var」は呼び出しフォームから設定され、処理されて出力用に返されます。実行中に複数のフォームから複数回開きます。すべてのフォームが同時に実行されます。各 FormX は、親フォームからのオブジェクトの個別のインスタンスを使用して開かれるため、正常に機能します。しかし、私のプロジェクトには、すべてのフォームにアクセスできる public static クラス "Abc" があり、コードを追加すると:
public static class Abc
{
public static string Open_form(string Var)
{
FormX Obj = new FormX();
Obj.Var = Var;
Obj.Show();
Obj.Process_Var();
Var = Obj.Var;
Obj.Close();
return Var;
}
}
次のように、フォームのどこかで(そして複数回)呼び出します。
Form1_Load()
{
//Some operations
MessageBox.Show(Abc.Open_form("ABC"));
//Some operations
MessageBox.Show(Abc.Open_form("XYZ"));
}
Form2_Load()
{
//Some operations
MessageBox.Show(Abc.Open_form("123"));
//Some operations
MessageBox.Show(Abc.Open_form("456"));
}
Form1 と Form2 は、メイン フォームから次のように開かれます。
Form1 obj1 = new Form1();
obj1.Show();
Form2 obj2 = new Form2();
obj2.Show();
それで何か問題が発生するでしょうか?2つのフォームが同時に静的呼び出しを呼び出した場合、変数「Var」の処理に問題はありますか? もう 1 つ質問があります。Why と Why not のFormX.Dispose();
後に電話する必要がありますか? FormX.Close();
の利点はありFormX.Dispose()
ますか?