C#-WinForm - 如何在孩子关闭时关闭父表格?

时间:2015-04-14 03:40:27

标签: forms parent

这是我的问题:

我有3种形式:

  • 表格fParent
  • 表格fChild
  • 表格OpenForm

我想要当我单击Form fChild上的一个按钮时,它会显示Form OpenFormand并隐藏Form fParent和Form fChild。

我该怎么办?
请帮我。

3 个答案:

答案 0 :(得分:0)

创建父窗体的新对象并关闭/隐藏它。如果要隐藏父表单,请调用Hide()方法;如果要关闭父表单,请调用Close()方法。

答案 1 :(得分:0)

最好的方法是创建一个单例类,因为如果你继续这样做,

Form1 f1 = new Form1();
f1.Show();
this.Hide();

您继续实例化新表单而不是回到之前的表单

这里是你如何做单身设计模式:

public static class SingletonForm
{
  private static Form1 _f1;
  private static Form2 _f2;

  public static Form1 _Form1
   {
     get
     {
         if(_f1 == null)
          {
             _f1 = new Form1();
          }
          return _f1;
     }
   }

public static Form2 _Form2
   {
     get
     {
         if(_f2 == null)
          {
             _f2 = new Form2();
          }
          return _f2;
     }
   }
}

在您的按钮中单击表单,只需致电:

SingletonForm._Form1.Hide();
SingletonForm._Form2.ShowDialog();

答案 2 :(得分:0)

 Assembly frmAssembly = Assembly.LoadFile(Application.ExecutablePath);
            foreach (Type type in frmAssembly.GetTypes())
            {
                if (type.BaseType == typeof(Form))
                {
                    if (type.Name == formname))
                    {
                        Form frmshow = (Form)frmAssembly.CreateInstance(type.ToString());

                        foreach (Form form in this.MdiChildren)
                        {
                              form.Close();   // form close or hide
                        }
                        frmshow.Show();
                    }
                }
            }