2011-05-27 183 views
0

我試圖將面板添加到groupbox,面板將有一個backgroundimage。動態添加面板c#

我有三個文件,所以我應該在groupbox中有3個面板,但是4個面板會顯示相同的照片。我正在使用以下代碼:

DirectoryInfo di = new DirectoryInfo(folder); 
     FileInfo[] rgFiles = di.GetFiles(); 
     Point NewPosition =new Point() ; 

     foreach (FileInfo fi in rgFiles) 
     { 
      Bitmap b = new Bitmap([email protected]"\"+ fi.Name); 

      Panel p = new Panel(); 
      p.Size = b.Size; 
      p.BackgroundImage = b; 
      p.Name = fi.Name; 
      p.Dock = DockStyle.Top; 



      control.Controls.Add(p); 

     } 

請任何建議。

+0

什麼問題? – 2011-05-27 21:40:03

+1

@Cory,他表示只有一個正在顯示。 – 2011-05-27 21:41:19

+2

什麼類型是「控制」變量?此外,我沒有看到面板的任何位置,所以也許他們在對方,只有最後一個可見(隱藏下面的其他人)? – 2011-05-27 21:42:14

回答

5

您沒有設置面板的位置。

我猜這些面板堆疊在一起,使頂部面板成爲唯一可行的面板。

面板有一個位置屬性,你可以設置。您也可以使用Dock屬性停靠您的面板。

夫婦的簡單的例子:

p.Dock = DockStyle.Top; 

p.Location = new Point(50, 50); 
+0

如何動態更改位置,我不知道我有多少面板在grooupbox – AMH 2011-05-27 21:48:31

+0

所有創建的控件位於相同的位置。設置每個控件的位置。 – 2011-05-27 21:50:06

+0

碼頭工作,但結果是四個面板具有相同的背景我更新我的代碼在我的問題代碼你幫我在那 – AMH 2011-05-27 22:06:06