这里我想设置像这样的图像位置:
pic1.ImageLocation = "";
pic2.ImageLocation = "";
依旧......
foreach (ImageResult result in response.Image.Results)
{
i++;
PictureBox thumnailBox = new System.Windows.Forms.PictureBox();
thumnailBox.Name = "pic" + i.ToString();
//HOW TO DO ??
//thumnailBox.ImageLocation = result.Thumbnail.Url;
//listView1.Items.Add(thumnailBox.Name);
}
答案 0 :(得分:0)
您的问题是您可能会将所有图片框彼此重叠。您需要设置PictureBox的实际位置(可能还有它们的大小),使它们不会彼此完全或部分重叠。
这可以通过代码thumbnailBox.Location = new Point(x,y);
完成,其中x和y是整数。
如前所述,不要忘记更改thumbnailBox.Size
。
更新:另一个问题可能是你需要通过以下方式创建PictureBoxes数组:
PictureBox[] thumbnailBoxes = new PictureBox[numPics];
并在设置图像和位置时进行迭代。
然后,在循环外部,通过执行Controls.AddRange(thumbnailBoxes);
答案 1 :(得分:0)
我知道你想做什么,你想在列表视图中显示每个图像吗?
您需要添加一个imagelist控件来存储所有图像,然后将每个listview项链接到存储的图像。
// add imagelist and listview controls
ImageList imglist = new ImageList( this.components);
ListView lst = new ListView();
lst.LargeImageList = imglist;
this.Controls.Add(lst);
设置您需要的控件。然后在循环中将图像加载到图像列表中,给它一个键,然后在列表项中使用该键:
for (int i = 0; i < 0; i++)
{
imglist.images.add(image.fromfile("the-filename.jpg"));
listviewitem itm = new listviewitem();
string key = string.format("pic{0}", i);
itm.text = key;
itm.imagekey = key;
lst.items.add(itm);
}
这是伪代码,当然它不会按原样编译,但你明白了吗?