【问题标题】:How to know that Image is successfully loaded in Picturebox from the Internet?如何知道图片是从网上成功加载到Picturebox中的?
【发布时间】:2014-01-13 18:30:22
【问题描述】:

我正在使用 PictuerBox 的“ImageLocation”属性从网络上获取图片。

PB1.ImageLocation = "http://www.example.com/picture.png"

有时必须从网络加载到图片框中的图像尺寸非常大,无法立即出现在图片框中。在执行下一个操作之前,我需要确认 Image 已成功加载到 Picturebox 中。 我必须在从网络加载图像后启用一些控件。

有什么方法可以满足这个要求吗? (注意:My PictureBox 也有初始图像。)

【问题讨论】:

  • 给我一分钟,我会想出一些代码:)

标签: vb.net winforms .net-2.0 picturebox


【解决方案1】:

使用PictureBox.LoadCompleted 事件。

【讨论】:

  • 正如我所描述的,My Picturebox 也有一个初始图像,它必须显示直到加载来自 Internet 的大图像。 Picturebox.LoadComplete 事件在初始图像成功加载时启用我的控件。现在如何区分初始图像和互联网图像:(
  • 一个变量跳到脑海。调用 Load() 时将其设置为 True。
  • 哦,是的,变量会起作用。解决了如果我们可以像这样在 LoadComplete Event 中检查它,还有 1 个问题? If Not PB.Image = PB.InitialImage Then Button1.enable = true 应该会更好:)。
【解决方案2】:

好吧,看看我为我所做的只是下载图片。图片通常需要一段时间才能开始放入图片框中。

这是我的代码:

If (My.Computer.FileExists("http://www.example.com/picture.png")) Then
  My.Computer.Network.DownloadFile("http://www.example.com/picture.png", <Some Location>)
  PB1.ImageLocation = <Some location>
 Else
  End
End If

这可能不是最有效的方法 - 但我可以将其视为一种使其工作的简单方法。

不知道它是否正常工作,目前无法访问 Visual Studio

【讨论】:

  • 嗯,谢谢您的回答@nfell2009 但这不是一个解决方案,而是一个技巧,我们已经知道这一点。更好的是“PictureBox.LoadCompleted”事件。
  • 是的,我不确定为什么您的代码不起作用。编辑:因为我以前用过它并且没有问题......
猜你喜欢
  • 2016-01-06
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
相关资源
最近更新 更多