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

标签 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);
}

最佳答案

我拿了你的代码并运行它,遇到了与你类似的问题:我只看到了 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));

关于c# - Windows 窗体 C# 中的图片框和面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18186837/

相关文章:

c# - 如何循环checklistbox中的所有数据?

css - 对 div 内的内联图像应用悬停图像效果

c# - 在两个 C# 项目之间使用 #define

c# 开发和 project.json

c# - Azure函数应用程序、服务总线和返回服务总线

.net - 将表单的一个实例的 TextBox 控件的更改值更新到所有实例

c# - 以编程方式将文件添加到 Kentico 媒体库

c# - 以编程方式创建动画位图图像

javascript - 在 JavaScript 中将 base64 图像转换为文件对象

html - 2 行响应图像