0

C#アプリケーションを作成しました。

ここに、form1form2の2つのフォームがあります。

form2form1から呼び出されます。

後でform2は非表示になります。

次に、 form1からform2を表示します。

アイデアを教えてください。

4

3 に答える 3

2

オブジェクトへの参照を保持する必要がありForm2、それを表示したい場合は、呼び出すだけです-新しいオブジェクトをfrm2.Show()構築しないでください-既存のものを使用してください。Form2new 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.
}
于 2012-12-11T15:36:19.380 に答える
1

form2 を非表示にする場合は、form.close の代わりに form.hide() を使用することをお勧めします。

form2 への参照を保持し、再度表示する場合は form.show を呼び出します

于 2012-12-11T15:36:29.760 に答える
1

クラスレベルで 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();
}


}
于 2012-12-11T15:42:31.080 に答える