我有三种表格,Form1,Form2,Form3。Form1中的按钮可以打开Form3,Form2中的按钮也可以打开Form3。当按下任一按钮时,相应的表单被隐藏并打开 Form3。当 Form3 关闭时,它应该打开已隐藏的表单。
我该怎么做呢?
Form.Show
方法可以OwnerForm
作为参数,所以这样称呼它:
var frm = new Form3();
frm.Show(this);
您可以通过属性访问 Form3 中的父级,Owner
因此在结束事件中:
private void FormIsClosing(object sender, FormClosingEventArgs e)
{
var owner = this.Owner;
if (owner != null)
{
owner.Show();
}
}
另一种方法是使用 Ativated 和 FormClosed 事件。
假设在 Form1 中你Click
有一个 Button 来显示 Form2
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Activated += new EventHandler(frm2_Activated);
frm2.FormClosed += new FormClosedEventHandler(frm2_FormClosed);
frm2.Show();
}
现在,这是当 Form2 显示或被激活时,您隐藏调用表单,在本例中为 Form1
private void frm2_Activated(object sender, EventArgs e)
{
this.Hide(); // Hides Form1 but it is till in Memory
}
在这种情况下 Form2 中,当被调用表单关闭时,它将再次显示隐藏的 Form1。
private void frm2_FormClosed(object sender, FormClosedEventArgs e)
{
this.Show(); // Show hidden Form1
}