2013-06-20 105 views
2

对不起,我的英语不好......你好,我已经制作了这个图片盒,但每当我尝试在那里加载一个新图片时,它不会显示任何内容,只是一个空的图片框控制。这是我目前的代码:图片框没有更新其内容

var loadImage = new BackgroundWorker(); 
loadImage.RunWorkerAsync(); 

// The stuff that is being executed in the backgroundworker. 
loadImage.DoWork += (o, args) => 
    { 
     // Loop through the list of items to find the matching picture. 
     foreach (var item in listItems) 
     { 
      if (item.Name == name) 
      { 
       try 
       { 
        // Get the image. 
        var request = WebRequest.Create(item.Picture); 
        using (var response = request.GetResponse()) 
        using (var stream = response.GetResponseStream()) 
        { 
         Image image = Image.FromStream(stream); 
         args.Result = image; 
         return; 
        } 
       } 
       catch (Exception) 
       { 

       } 
      } 
     } 
    }; 

// Execute this when the backgroundworker is finished. 
loadImage.RunWorkerCompleted += (o, args) => 
    { 
     pictureBox1.Image = (Image)args.Result; 
     Application.DoEvents(); 
    }; 

有什么我做错了吗?如果是这样,你能告诉我什么?

+0

您是否调试了解您是否在'DoWork'代码中为'args.Result'分配了一个有效的'Image'? – DonBoitnott

+0

@DonBoitnott是的,它分配图像。 –

+2

为什么你在附加你的代表之前运行后台工作者**? – HuorSwords

回答

2

当我直接评论你的问题,并将其作为答案时,你正在运行后台工作人员之前附加您的代表。

也许,您只需要在您的代码中交换订单。

+1

是的,这是伎俩^ _ ^,再次感谢! –