2013-01-08 23 views
0

我想在我的應用程序的splitcontainer Panel2上添加12個小窗體。這是一個4x3 = 12格式的網格。

因此,在我的應用程序的主窗體中,我添加了一個SplitContainer控件。另外我創建了12個單獨的表單。
的12個表單添加到SplitContainer的,我這樣做:
Visual Studio splitcontainer和Forms

 form1 _form1 = new form1(); 
     _form1.TopLevel = false; 
     this.splitContainer1.Panel2.Controls.Add(_form1); 
     _form1.Show(); 
     .... 
     form12 _form12 = new form12(); 
     _form12.TopLevel = false; 
     this.splitContainer1.Panel2.Controls.Add(_form12); 
     _form12.Show(); 

這裏的問題是,所有的窗體(Form1 ... form12)在同一位置(位置)顯示,behing Form1中。所以我必須手動移動並替換每個表格

我想要得到的是具有所有12種形式的SplitCOntainer,每種形式都位於彼此不同的特定位置。

因此,當SplitContainer調整大小時,所有12個窗體都將調整大小,當窗體關閉時,其速度保持空白,直到新窗體顯示爲止。

編輯。我在這裏編輯,以顯示我如何解決這個問題

 int _width = this.flowLayoutPanel1.Width; 
     int _height = this.flowLayoutPanel1.Height; 

     _width = (int)_width/4; 
     _height = (int)_height/3; 

     _form1.TopLevel = false; 
     _form1.Width = _width; 
     -form1.height = _height; 
     _form1.Owner = this; 
     _form1.TopLevel = false; 
     flowLayoutPanel1.Controls.Add(_form1); 
     _form1.Show(); 
.... 
_form12.TopLevel = false; 
      _form12.Width = _width; 
      -form12.height = _height; 
      _form12.Owner = this; 
      _form12.TopLevel = false; 
      flowLayoutPanel1.Controls.Add(_form12); 
      _form12.Show(); 

而且它按我的意願工作。 感謝您的FlowLayoutPanel的引入SplitContainer.panel

+1

也許把[FlowLayoutPanel的(http://msdn.microsoft.com/en-us/library/system.windows.forms.flowlayoutpanel。 aspx)在'Panel2'中? – ChiefTwoPencils

回答

3
 Form frm; 
     for (int i = 0; i < 12; i++) 
     { 
      frm = new Form(); //generate new instance 
      frm.Width = 150; 
      frm.Height = 150; 
      frm.Owner = this; 
      frm.TopLevel = false; 
      flowLayoutPanel1.Controls.Add(frm); 
      frm.Show(); 
     } 

你可以使用FlowLayoutPanel的。 只需FlowLayoutPanel的加入SplitContainer1.Panel2 並設置flowLayoutPanel1.dock =填寫

+0

你好@ Pranav1688。在你的循環似乎是相同的形式。不是這樣。所有12種形式都不同。您的循環將顯示相同的表單12次 – DeathCoder

+0

您確定所有表單顯示相同。 – Pranav1688

+0

當然可以。另一件事是:我怎樣才能刪除表單之間的空間。我將FlowLayoutPanel Margin設置爲0; 0; 0; 0。但它仍然顯示空間相同的東西 – DeathCoder

相關問題