1

在我的项目中,我收集了 PictureBoxes 和一个填充的 ImageList。foreach我想使用Loop用 ImageList 中的每个图像填充每个图片框。我知道如何使用 For 循环,但我不知道如何使用 foreach 循环。我问这个只是为了知识目的。我认为这可以在 foreach 循环中使用 Linq 来实现,但我是初学者,所以我不知道该怎么做。

我在 for 循环中尝试了以下代码:

        for (intimgcount = 0; intimgcount < intMaxPics; intimgcount++)
        {                
            pbxCollection[intimgcount].Image = imglst.Images[intimgcount];          
        }     

我想在foreach循环中使用的代码是:

        var pbxCollection = new List<PictureBox>();  //PictureBox collection

编辑:如何在表单中设置图片框集合的位置?

我试过了:

        var i = 0;
        foreach (var pbx in pbxCollection)
        {
            pbx.Image = imglst.Images[i++];
            //set location:
            pbx.Width = 100;
            pbx.Height = 100;
            pbx.Location = new Point(0, pbx.Height * i);
            //add to form:
            this.Controls.Add(pbx);
        }  
4

2 回答 2

0

你可以这样做。

var pbxCollection = new List<PictureBox>();
foreach (Image img in imglst.Images)
{ 
     PictureBox pb = new PictureBox();
     pb.Image = img;
     pbxCollection.Add(pb); 
}     
于 2012-11-07T05:31:42.910 回答
0

使用变量来增加集合的索引:

var i = 0;
foreach (var pbx in pbxCollection)
{
    pbx.Image = imglst.Images[i++];
    //set location:
    pbx.Location = new Point(0, pbx.Image.Height * i);
    //add to form:
    this.Controls.Add(pbx);
}
于 2012-11-07T05:34:16.557 回答