C#-WinForm - 如何在关闭子窗体时关闭父窗体

  • 本文关键字:窗体 C#-WinForm forms parent
  • 更新时间 :
  • 英文 :


这是我的问题:

我有 3 种表格:

  • 表格父级
  • 表格f儿童
  • 表单
  • 开放表单

我希望当我单击表单fChild上的按钮时,它会显示表单OpenFormand并隐藏表单fParent和表单fChild。

我该怎么做?
请帮助我。

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

执行此操作的最佳

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

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();
 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();
                    }
                }
            }

最新更新