我有三种形式,Form1,Form2,Form3。 Form1中的按钮可以打开Form3,Form2中的按钮也可以打开Form3。 按下任一按钮时,将隐藏相应的表单并打开Form3。 当Form3关闭时,它应该打开已隐藏的表单。
我将如何做到这一点?
答案 0 :(得分:3)
Form.Show
方法可以将OwnerForm
作为参数,因此请将其称为:
var frm = new Form3();
frm.Show(this);
您可以通过属性Owner
访问Form3中的父级,因此在结束事件中:
private void FormIsClosing(object sender, FormClosingEventArgs e)
{
var owner = this.Owner;
if (owner != null)
{
owner.Show();
}
}
答案 1 :(得分:0)
另一种方法是使用Acivated和FormClosed事件。
让我们在Form1中说明Click
一个按钮来显示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
}