7

如何使用 foreach 语句将图像(指定图像)添加到列表视图中,例如:

foreach(Video entry in videoFeed.Entries) {

listview1.items.add(entry);

listview1.items.image(imageURL);

}
4

2 回答 2

13

如果您想要为您的ListViewItem显示图像,那么您需要创建一个ImageList,用图像填充它,将ImageList分配给ListView,然后告诉每个ListViewItem使用列表中的哪个图像:

var listView = new ListView();

// create image list and fill it 
var imageList = new ImageList();
imageList.Images.Add("itemImageKey", image);
// tell your ListView to use the new image list
listView.LargeImageList = imageList;
// add an item
var listViewItem = listView.Items.Add("Item with image");
// and tell the item which image to use
listViewItem.ImageKey = "itemImageKey";

您可以在此MSDN 文章或此MSDN 教程中阅读有关 ListViewItem 以及如何设置/使用图像的更多信息。

于 2013-06-29T15:52:18.403 回答
4
private void Form1_Load(object sender, EventArgs e)
{
    List<string> adress = new List<string>()
    {
        "http://i.telegraph.co.uk/multimedia/archive/02351/Jaguar-F-type-9_2351861k.jpg",
        "http://i.telegraph.co.uk/multimedia/archive/02351/Jaguar-F-type-5_2351885k.jpg",
        "http://i.telegraph.co.uk/multimedia/archive/02351/Jaguar-F-type-7_2351893k.jpg"
    };

    ImageList il = new ImageList();

    DownloadImagesFromWeb(address, il);

    il.ImageSize = new Size(32, 32);
    int count = 0;
    listView1.LargeImageList = il;
    List<string> names = new List<string>() { "1", "2", "3", "4" };

    foreach (string s in names)
    {
        ListViewItem lst = new ListViewItem();
        lst.Text = s;
        lst.ImageIndex = count++;
        listView1.Items.Add(lst);
    }
}

private void DownloadImagesFromWeb(List<string> adress, ImageList il)
{
    foreach (string img in adress)
    {
        System.Net.WebRequest request = System.Net.WebRequest.Create(img);
        System.Net.WebResponse resp = request.GetResponse();
        System.IO.Stream respStream = resp.GetResponseStream();
        Bitmap bmp = new Bitmap(respStream);
        respStream.Dispose();

        il.Images.Add(bmp);
    }
}

这是一个选项,您无需手动将每个图像复制到您的计算机,而是提供 url 并将该图像放置在新的位图中并添加到列表中。

于 2013-06-29T16:22:56.100 回答