Windows窗体C中的图片框和面板#

时间:2013-08-12 12:20:16

标签: c# winforms image panel picturebox

我需要在表单中一个接一个地显示100张图片。

我遵循了以下想法:

在表格中添加了一个面板,在代码中我添加了100个图片框,并为每个图片框分配了我的图像 现在问题是我只能看到32个图片框 为什么?任何财产都需要更新......? 以下是我的代码:

List<int> bottomlist = new List<int>();
for (int i = 0; i < 100; i++)
{
    PictureBox pic = new PictureBox();
    Image img = //I get image by some code here//
    pic.Image = img;
    pic.Size = img.Size;
    if (i == 0)
        bottomlist.Add(pic.Bottom + 8);
    else
        bottomlist.Add(pic.Bottom + bottomlist[i - 1] +8);
    if (i == 0)
        pic.Top = 8;
    else
    {
        pic.Top = bottomlist[i - 1] + 8;
    }
    pic.Left = (panel1.ClientSize.Width - pic.Width) / 2;
    panel1.Controls.Add(pic);
}

1 个答案:

答案 0 :(得分:2)

我拿了你的代码并运行它并且遇到了类似的问题:我只看到了8张图片。

然后我记得面板需要手动将AutoScroll定义为true,否则它看起来像我的图像较少。现在我可以看到他们所有人:

enter image description here

代码与您的代码相同,唯一添加的是

     this.panel1.AutoScroll = true;

如果您需要调整图片大小,请尝试this article。它基本上是这么说的:

public static Image resizeImage(Image imgToResize, Size size)
{
   return (Image)(new Bitmap(imgToResize, size));
}

yourImage = resizeImage(yourImage, new Size(50,50));