1

私のプロジェクトでは、PictureBoxes のコレクションと塗りつぶされた ImageList があります。Loopを使用して、ImageListの各Imageを各pictureBoxに入力したいと思いforeachます。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 に答える