C#アプリケーションを作成しました。
ここに、form1とform2の2つのフォームがあります。
form2はform1から呼び出されます。
後でform2は非表示になります。
次に、 form1からform2を表示します。
アイデアを教えてください。
オブジェクトへの参照を保持する必要がありForm2
、それを表示したい場合は、呼び出すだけです-新しいオブジェクトをfrm2.Show()
構築しないでください-既存のものを使用してください。Form2
new Form2()
// You need to contruct Form2 before calling Show().
Form2 frm2 = new Form2();
// Some handler somewhere
void btnShowForm2_Click(..., ...)
{
frm2.Show();
}
編集: Micah が指摘したように、Form2 を閉じるのではなく非表示にする必要があります。
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
this.Hide();
e.Cancel = true; // this cancels the close event.
}
form2 を非表示にする場合は、form.close の代わりに form.hide() を使用することをお勧めします。
form2 への参照を保持し、再度表示する場合は form.show を呼び出します
クラスレベルで form2 インスタンス変数を取る
例
Public Class Form1
{
Form frm2;
//Show form here
protected void Button1_Clik
{
frm2=new Form2();
frm2.Show();
}
//Even the form is hidden, you may show the same instance /same state of form again
protected void Button2_Click()
{
frm2.Show();
}
}