在行中动态添加图片框

时间:2012-06-30 14:10:37

标签: c# winforms

我试图连续显示图像..为此我试图动态添加图片框。图像位置存储在数据库中。我的代码是

int iCtr = 0;
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            PictureBox picture = new PictureBox
            {
                Name = "pictureBox"+i,
                Size = new Size(316, 320),
                Location = new Point(1, iCtr * 1100 + 1),
                Visible = true
            };
           // string fname = dt.Rows[2]["FileName"].ToString();
            picture.ImageLocation = dt.Rows[i]["FileName"].ToString();
            //@"..\Images\80knhk00003.jpg";
            pnlDisplayImage.Controls.Add(picture);
            iCtr++;
        }

其中dt是可数据的。

有了这个我只能看到最后一张图片而不是所有图片。即使最后一张图像非常小,也没有显示完整的图像(即我只能查看实际图像的一个角落)。

如何为图像添加尺寸以便可以完全查看? 如何在行中显示图像?

请帮忙 感谢

2 个答案:

答案 0 :(得分:3)

你可以试试这样的东西吗?要进行缩放,请参阅PictureBoxSizeMode

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

for (int i = 0; i < dt.Rows.Count; i++)
{
    PictureBox picture = new PictureBox
    {
        Name = "pictureBox" + i,
        Size = new Size(316, 320),
        Location = new Point(i * 316, 1),
        BorderStyle = BorderStyle.FixedSingle,
        SizeMode = PictureBoxSizeMode.Zoom
    };
    picture.ImageLocation = dt.Rows[i]["FileName"].ToString();
    pictureBoxList.Add(picture);
}

foreach (PictureBox p in pictureBoxList)
{
    pnlDisplayImage.Controls.Add(p);
}

答案 1 :(得分:-1)

而不是Image属性,将BackGroundImage属性设置为您的图片位置,然后将BackGroundImageLayout设置为值“Stretch”,然后您将看到完整图像。