2

这可能是一个愚蠢的问题,因为我可能完全倒退了这个问题,但我试图在 Windows 窗体应用程序中显示一组图像。图片是从 API 中获取的,获取它们的 URL 不是问题。我遇到的问题实际上是根据我下载的图像数量将它们显示在一个表格或一组图片框中。所有图像的尺寸都相同,我只需要一种显示方式。

图片框很简单,pictureBox1.Load(Image_URL);但是当我需要根据实际需要下载的图像数量创建更多图片框时,问题就出现了。

在不知道我需要显示多少张图像的情况下,还有其他方法可以显示图像吗?我是否需要动态创建图片框并分别显示每个 URL?我完全被这个难住了。

4

3 回答 3

2

我认为动态创建图片框的最简单方法是DataRepeater,您可以在工具箱的Visual Basic PowerPacks节点下找到它。以下是使用它来显示图像的示例:Windows 窗体的 DataRepeater 控件

这是显示本地文件夹中图像的示例。将 DataRepeater 控件放在表单上。然后将 PictureBox 和 Label 放在刚刚添加的 DataRepeater 上:

string path = @"D:\";
var query = from f in Directory.GetFiles(path, "*.jpg")
            select new { Path = f, FileName = Path.GetFileName(f) };

var files = query.ToList();
pictureBox1.DataBindings.Add("ImageLocation", files, "Path");
label1.DataBindings.Add("Text", files, "FileName");
dataRepeater1.ItemHeaderVisible = false; // to hide headers
dataRepeater1.DataSource = files;

就是这样。将显示所有找到的图像。

于 2013-08-03T10:28:44.897 回答
1

根据您的要求,您有 2 个选项。

选项 1: 如果您必须在图片中显示一些额外信息,则可以考虑使用 listview/gridview。

选项 2: 否则,您可以动态创建图片框并为其分配 url。

于 2013-08-03T10:25:50.377 回答
0

我的建议是,您可以简单地将 DataGridView 与 DataGridViewImageColumn 一起使用,您可以添加任何您想要的行

于 2013-08-03T10:26:09.373 回答