加载 PICTUREBOX image

十一路 2008-05-12 10:21:39
c#
使用外部下载的图片来填充PictureBox
在下载代码后马上加载图片
已经加了文件存在验证代码(file.exit())

现在的情况是程序运行图片加载不上去,但是单步执行的情况相反,可以加载.

我初步判定因为加载图片的时间太快. 图片文件已经存在,但是加载的时候文件的数据并不完整(就是说200K的图片当时只有100K数据)
不知道我判断是否正确,要是这个情况,那么判断数据完整的函数有吗,或者有别的方法解决;
判断不正确的话,那又是什么一个情况!

急,今天的工作能不能完成就看这点了! 先行谢过. 路过帮顶,不胜感激! -_-




...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
十一路 2008-05-22
  • 打赏
  • 举报
回复
问题已经解决,谢谢你们的回帖。
其实问题的关键点时判断图片数据是否全部下载到了本机。
其他就好办了。

获取文件的时候知道图片的大小,
我通过判断图片大小来判断是否图片下载完成.
ok
结贴!!
yunfeng007 2008-05-12
  • 打赏
  • 举报
回复
你用委托+事件不就可以了嘛
例子

delegate void DrawCompletedHandler(Image img);
event DrawCompletedHandler drawcompleted;
//初始化的时候进行绑定
this.drawcompleted += new DrawCompletedHandler(MyStockMain_drawcompleted);

void MyStockMain_drawcompleted(Image img)
{
this.picStock.Image = img;
}

//下载图片
void DownLoadPic()
{
//下载的图片完成之后,触发事件,helper.GetImg为自己写的得到图片image的函数,你可以替换成你自己的
Image stockImg = helper.GetImg(ImgIn.ImgUrl);
if (drawcompleted != null) this.drawcompleted(map);
}
十一路 2008-05-12
  • 打赏
  • 举报
回复
感谢你们的回帖
十一路 2008-05-12
  • 打赏
  • 举报
回复
单线程,测试过了,在加载前获取了图片文件长度为0, FileInfo.lenth ==0;
这可以断定,的确是因为 数据还没有全部下载完成就进行了加载造成!

现在的待解决的是,有测试文件数据是否完整的方法么?
(下载图片调用的设备的借口函数! 所以只能从本机来判断,行吗)



yunfeng007 2008-05-12
  • 打赏
  • 举报
回复
搞不懂,你要是完全下载完了,在加载的话怎么会出现你说的那种错误呢?
不知道你的代码没办法解决啊,你是多线程处理的?
jack20my 2008-05-12
  • 打赏
  • 举报
回复
贴代码
大飞飞虫 2008-05-12
  • 打赏
  • 举报
回复
关键代码贴出来看看呀, 你描述的看不明白

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧