【问题标题】:Creating Form Inside the Form在表单内创建表单
【发布时间】:2011-06-24 05:44:24
【问题描述】:

我是 Visual Studio 2010 的新手,我正计划创建一个计时系统。我只是想问我如何创建一个包含 2 个表单的表单。例如,如果我单击一个按钮,它将在表单中打开一个新表单。请帮忙。谢谢

【问题讨论】:

标签: c# visual-studio-2010


【解决方案1】:
Form formA = new Form();
formA.IsMdiContainer = true;

Form formB = new Form();
formB.MdiParent = formA;
formB.Show();

【讨论】:

    【解决方案2】:

    您必须与MDI (Multiple Document Interface) 合作,看看这个article 可能会有所帮助。

    【讨论】:

      【解决方案3】:

      您可以创建自定义表单,删除所有边框和工具栏,使其看起来尽可能接近面板。然后将新的自定义表单设置为 MdiContainer / MDI 面板并在该面板中显示表单,类似于下面的代码将完成这项工作

      Mdi-Panel 定义:

      公共类 MdiClientPanel:面板 { 私人表格 mdiForm; 私有 MdiClient ctlClient = new MdiClient();

      public MdiClientPanel()
      {
          base.Controls.Add(this.ctlClient);
      }
      
      public Form MdiForm
      {
          get
          {
              if (this.mdiForm == null)
              {
                  this.mdiForm = new Form();
                  /// set the hidden ctlClient field which is used to determine if the form is an MDI form
                  System.Reflection.FieldInfo field = typeof(Form).GetField("ctlClient", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                  field.SetValue(this.mdiForm, this.ctlClient);
              }
              return this.mdiForm;
          }
      }
      

      }

      用法:

      /// mdiChildForm is the form that should be showed in the panel
      /// mdiClientPanel is an instance of the MdiClientPanel
      myMdiChildForm.MdiParent = mdiClientPanel1.MdiForm;
      

      【讨论】:

        【解决方案4】:

        我认为,这是一个非常简单的方法:

            Form1 form= new Form1 ();
            form.TopLevel = false;
            this.Controls.Add(form);
            form.Show();
        

        【讨论】:

          【解决方案5】:

          也许MDI 接口会做你想做的事..

          Here's 一个教程。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-12-20
            • 2011-04-30
            • 2016-12-29
            • 1970-01-01
            • 1970-01-01
            • 2019-04-25
            • 1970-01-01
            相关资源
            最近更新 更多