下载一个图片可以使用new WebClient().DownloadFile(url, path);这种形式。例如url是"http://www.abc.com/def/down.ashx?name=%5e%9flad2ssdfaf.png&md5=%3d%21%82%3c%2f%38%25如果你的服务器程序可以根据md5值而返回304状态,那么你的这个代码就需要使用try...catch,当出错时使用“本地缓存”图片。

解决方案 »

  1.   

    其实就是2个过程,第一就是winform添加picturebox,第二就是picturebox绑定服务器的图片
    PictureBox picture = new PictureBox();
    picture.Image = Image.FromFile("从服务器传过来的图片地址");//picturebox绑定服务器图片
    picture.Location = new Point(x,y);//绑定的位置自己设置
    this.Controls.Add(picture);//winform窗体绑定PictureBox 
      

  2.   

    您看我这么做可以不            int perRowCount =6; //每行显示几个图片
                int rowIndex = 0;
                int colIndex = 0;
                for (int i = 0; i < imageList1.Images.Count; i++)
                {                                PictureBox picBox = new PictureBox();
                    picBox.SizeMode = PictureBoxSizeMode.Zoom;
                  ///  picBox.Image = imageList1.Images[i];
                    picBox.Image = Image.FromFile("从服务器传过来的图片地址");//picturebox绑定服务器图片
                    picBox.Width = (this.panel1.Width - 5 * 4) / perRowCount; //5为每2个pictureBox之间的间隔
                    picBox.Height = picBox.Width;
                    picBox.Left = 5 * (colIndex + 1) + picBox.Width * colIndex;
                    picBox.Top = 5 * (rowIndex + 1) + rowIndex * picBox.Height;
                    this.panel1.Controls.Add(picBox);
                    colIndex++;
                    if ((i + 1) % perRowCount == 0)
                    {
                        colIndex = 0;
                        rowIndex++;
                    }
    以前在本地是放在   ///  picBox.Image = imageList1.Images[i]这个里面的,现在我是循环得到服务器传来的地址还是把地址放到imageList中在取得阿。大神。。
      

  3.   

    您看我这么做可以不            int perRowCount =6; //每行显示几个图片
                int rowIndex = 0;
                int colIndex = 0;
                for (int i = 0; i < imageList1.Images.Count; i++)
                {                                PictureBox picBox = new PictureBox();
                    picBox.SizeMode = PictureBoxSizeMode.Zoom;
                  ///  picBox.Image = imageList1.Images[i];
                    picBox.Image = Image.FromFile("从服务器传过来的图片地址");//picturebox绑定服务器图片
                    picBox.Width = (this.panel1.Width - 5 * 4) / perRowCount; //5为每2个pictureBox之间的间隔
                    picBox.Height = picBox.Width;
                    picBox.Left = 5 * (colIndex + 1) + picBox.Width * colIndex;
                    picBox.Top = 5 * (rowIndex + 1) + rowIndex * picBox.Height;
                    this.panel1.Controls.Add(picBox);
                    colIndex++;
                    if ((i + 1) % perRowCount == 0)
                    {
                        colIndex = 0;
                        rowIndex++;
                    }
    以前在本地是放在   ///  picBox.Image = imageList1.Images[i]这个里面的,现在我是循环得到服务器传来的地址还是把地址放到imageList中在取得阿。大神。。 
      

  4.   

    1.先把图片下下来(用webclient   webrequest),再设置PictureBox.Image属性
    2.使用PictureBox.Load (PictureBox.AsyncLoad)直接加载图片
        http://msdn.microsoft.com/zh-cn/library/f6ak7was(v=vs.80).aspx   同步加载
        http://msdn.microsoft.com/zh-cn/library/ww2xzydc(v=vs.80).aspx  异步加载
      

  5.   


    对了,不能这么,对于url地址的要用picture.ImageLocation=url
      

  6.   


    对了,不能这么,对于url地址的要用picture.ImageLocation=url
    这个我知道了。但是还没懂怎么循环取服务器上的图片的地址,能举个例子不
      

  7.   

    额,他们可不是你认为这样,他们其实是一个webbrowser控件或者是支持html地控件,那个东西其实就是标准的html页,就像老p说地,你断网看就明白了。断网一看,那可不是一个图片没显示出来,他是整个页面都是白板地
      

  8.   

    尼玛,直接一句
    pictureBox1.LoadAsync("http://xxoo.com/1.jpg")
    就行了  哪来那么多代码..或者那本身就是html,只不过用webbrowser而已..