动态添加所有图片框列表?

问题描述:

我试图创建一个名为“pictureBox”+ x的所有图片框的列表。我已经试过我在网上找到了一些不同的方法,但他们没有工作:(动态添加所有图片框列表?

简单的“代码”:

int x = 1; 

List<PictureBox> list= new List<PictureBox>(); 


if (there is a picturebox named "pictureBox" + x) { 
    list.Add("pictureBox" + x as type PictureBox); 
    x = x + 1; 
} 
else 
    Stop running this code; 

那么x将越来越大,直到有没有发现更多pictureboxes哪有。我这样做谢谢:)

编辑: 我使用Visual Studio中的winform,我试图用

list.Add((PictureBox)Controls.Find("pictureBox" + x)); 

,但我不能得到那个工作。

+0

你至少可以说几句关于你在网上找到的不同方法和尝试,以及他们的结果..?此外,所有这些图片盒应该生活在哪里?在窗体上?作为其n场?或者是其他东西?不知道这里有什么情况/更大的图片.. – 2014-10-05 00:43:01

+0

没有通用的方法来获得它的名字控制。解决方案至少取决于平台(winform,WPF,ASP.NET等),也许取决于你是如何创建和显示这些'PictureBox'的......并且这些信息是不存在的! – har07 2014-10-05 01:02:57

+0

我同意har07。 one sooution可能是使用Dictionary , PictureBox>,所以你可以简单地摆脱搜索 – sprinter252 2014-10-05 01:29:11

试试这个,

foreach(var pb in this.Controls.OfType<PictureBox>()) 
{ 
    //do stuff 
} 

这会给你的PictureBoxes。并在foreach循环中检查它的名字。如果它符合您的条件,请添加列表。

+0

谢谢!我刚刚添加“如果(pb.Name.StartsWith(”pictureBox“))”,它的工作:) – user2227486 2014-10-05 10:26:13