Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带文本和索引的Listview图片_C#_Winforms_Listview_Imagelist - Fatal编程技术网

C# 带文本和索引的Listview图片

C# 带文本和索引的Listview图片,c#,winforms,listview,imagelist,C#,Winforms,Listview,Imagelist,我有一个带有图像列表的列表视图,这样我可以在列表视图中显示文本附近的图片 问题是,应用程序每次按下按钮都会重新下载一张新图片,这意味着它会删除以前下载的图片。 如何避免这种情况 try { var req = WebRequest.Create(string.Format("http://minotar.net/avatar/{0}/24.png", textBox1.Text)); var stream = req.GetResponse().G

我有一个带有图像列表的列表视图,这样我可以在列表视图中显示文本附近的图片

问题是,应用程序每次按下按钮都会重新下载一张新图片,这意味着它会删除以前下载的图片。

如何避免这种情况

    try
    {
        var req = WebRequest.Create(string.Format("http://minotar.net/avatar/{0}/24.png", textBox1.Text));
        var stream = req.GetResponse().GetResponseStream();
        var img = Image.FromStream(stream);
        var imageList1 = new ImageList();
        pictureBox1.Image = img;

        imageList1.Images.Add(Image.FromFile(img2));
        listView1.SmallImageList = imageList1;

        for (int _index = 0; _index < imageList1.Images.Count; _index++)
        {
            var item = new ListViewItem();
            item.ImageIndex = _index;
            listView1.Items.Add(item).Text = " " + textBox1.Text;
        }
    }
    catch (Exception)
    {
        pictureBox1.Image = Properties.Resources._200;
    }
试试看
{
var req=WebRequest.Create(string.Format(“http://minotar.net/avatar/{0}/24.png”,textBox1.Text);
var stream=req.GetResponse().GetResponseStream();
var img=Image.FromStream(stream);
var imageList1=新的ImageList();
pictureBox1.Image=img;
imageList1.Images.Add(Image.FromFile(img2));
listView1.SmallImageList=imageList1;
对于(int _index=0;_index
创建一个缓存-并检查您是否已经拥有它。如果映像没有更改,您可以将其改为缓存到磁盘(image.Save)

//类级别变量
var_imageDictionary=新字典();
//方法中的逻辑
图像;
if(_imageDictionary.ContainsKey(textBox1.Text))
image=_imageDictionary[textBox1.Text];
否则{
image=//从web检索图像的代码
_imageDictionary[textBox1.Text]=图像;
}
// ... 将其添加到图像列表中

你能再多给我一点指导吗,我似乎无法让它工作:(。
// Class-level variable
var _imageDictionary = new Dictionary<string,Image>();


// Logic in method
Image image;
if(_imageDictionary.ContainsKey(textBox1.Text))
 image = _imageDictionary[textBox1.Text];
else {
   image = // code to retrieve image from web
   _imageDictionary[textBox1.Text] = image;
}

// ... add it to your image list