2011-05-27 118 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