日期:2014-05-18  浏览次数:21128 次

winform界面如何添加个加载中效果。。。
问题一:From1界面有一些pictureBox,打开程序显示pictureBox的时候会有些慢,pictureBox不是立刻加载出来,而是先显示一个框,然后才显示出出我给设置的背景。这样用户体验很不好啊。
问题二:如何获得webBrowser加载URL的状态,因为我的Form1上还有2个webBrowser,想让用户没有打开URL的时候不能看到Form1界面,不然的话就会出现webBrowser的一个框。

我想到的解决办法就是再打开前加一个页面加载中,当上述事情完成后再显示。。。
但是这个加载中该如何来做呢,请各位指点下,给个例子或源码是最好不过的。。

------解决方案--------------------
把加载做在后台线程中, 等加载完了通知picturebox, 可以考虑从内存直接给picturebox提供图像, 内存操作比文件操作快很多.
------解决方案--------------------
说的有些烦索,
总之,picturebox加载图片可以先加载一个缩略图,质量差但速度快。
URL加载装态有个百分比例,获取那个值就可以了,100%就是加载完了。
------解决方案--------------------
Thread 多线程,或者线程池,
System.Threading.ThreadPool.QueueUserWorkItem
再加上事件,和form.invoke 就能实现你的要求了.
用户体验会妙不可言,不过要控制好了.
简单的就是主线程创建主窗体和等待窗体,辅助线程初始化数据,
辅助线程完工以后通知主线程(界面操作用form.invoke,否则出错).



------解决方案--------------------
我想,重点是如何获得这些文件或者是URL加载的进度或者是状态.

看看有没有相关的属性,内存操作可能可以,是用MemoryStream
------解决方案--------------------
以前做的时候直接放一个gif文件,不过不显示进度;等加载完成后隐藏gif文件。

如果你要显示进度,便要想办法获取当前进度了,用进度条控件显示就行了,gif文件都生了。