2011-06-24 86 views
2

我是新來的Visual Studio 2010,我計劃創建一個計時系統。我只想問我怎麼能創建一個組成2個表單的表單。例如,如果我點擊一個按鈕,它將在表單內打開一個新表單。請幫忙。由於在表單中創建表格

+0

不窩內的另一個形式。您只會導致更多問題 – Ibu

+0

另一方面,請參閱[Hans Passant - 將窗體轉換爲子控件](http://stackoverflow.com/a/7692113/199364)。 – ToolmakerSteve

回答

5

你必須與MDI (Multiple Document Interface)一起工作,已經在這article,可能會幫助。

1

也許MDI界面將你想要做什麼..

Here's教程做到這一點。

4
Form formA = new Form(); 
formA.IsMdiContainer = true; 

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

您可以創建自定義窗體,刪除所有邊框和工具欄,以使其看起來與面板儘可能接近。然後做出新的自定義形成位於面板MdiContainer/MDI-面板和表演形式,類似下面的代碼將做的工作

MDI面板definiton:

公共類MdiClientPanel:面板 { 私人形式mdiForm; private 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; 
2

我認爲,這是一個很簡單的方法:

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