0

我有三种表格,Form1,Form2,Form3。Form1中的按钮可以打开Form3,Form2中的按钮也可以打开Form3。当按下任一按钮时,相应的表单被隐藏并打开 Form3。当 Form3 关闭时,它应该打开已隐藏的表单。

我该怎么做呢?

4

2 回答 2

3

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();
   }
}
于 2013-05-18T09:35:28.360 回答
0

另一种方法是使用 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
    }
于 2013-05-18T10:06:47.887 回答