2つのフォームをいったり来たりするプログラムを作成しているのですが、
フォーム1のボタンのクリックイベント
private void button3_Click(object sender, System.EventArgs e)
{
Form Form2 = new Form2();
Form2.Show();
this.Hide();
}
とボタンのクリックイベントでフォーム2を表示してフォーム1を非表示
にしたあと、フォーム2のボタンから非表示になったフォーム1を
インスタンスを作成せずに、非表示にしたフォーム1そのものを表示する方法を
教えてください.
フォーム2のボタンのクリックイベント
private void button1_Click(object sender, System.EventArgs e)
{
Form Form1 = new Form1();
Form1.show();
this.Close();
}
とこのようにやってしまうと、非表示になっているフォーム1は表示されません。
次のようにForm2にForm1への参照f1変数を持つといいと思います。
なお、クラスと変数が区別しやすいよう 変数はf1,f2としています。
public class Form1 : System.Windows.Forms.Form
{
// 省略
private void button1_Click(object sender, System.EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
f2.f1 = this;
this.Hide();
}
}
public class Form2 : System.Windows.Forms.Form
{
// 省略
public Form1 f1;
private void button1_Click(object sender, System.EventArgs e)
{
f1.Show();
this.Close();
}
}
割り込み質問で申し訳ないのですが、
現在ロードしてあるフォームをスタティックなプロパティなどで、参照することは
できないのでしょうか?
参照変数を使えばよいのですね。
早くOOPになれるようがんばります。
奈々さん、どうもありがとうございました。