通常对一个长时间执行的任务,如果不给以用户友好提示,会造成用户误解以为是程序出问题。对这样的情况一般是做进度条或者一个动态加载的图片实现用户友好性。这两种方式在JAVA里面很好实现,小菜一碟,但VB实现起来就麻烦点,可能本人对VB了解得还不够多,近期在弄这个VB客户端用户提示的,抽空写篇心得,方便自己以后查阅。
VB用户友好提示有几种方法:
1、进度条(使用VB自带进度条控件)
2、使用动态图片
对于VB自带进度条控件,他的实现方式是我们长时间执行的任务在一个for循环里面,因VB是以单线程模式运行,程序只有等待循环运行结束后才执行别的程序代码,这样机器一直处于循环之中,而不能响应别的事情,对CPU资源来说是一种浪费,那么可不可以既让循环执行,又可以执行程序另外的一部分代码呢?答案是可以的,用多线程(VB多线程可以用API函数实现和创建activex_exe实现)或者DoEvents。这里实现方式是DoEvents。通过在循环里面调用DoEvents释放CPU让Timer执行进度条任务。
Form1.frm(4个控件:ProgressBar1、Text1、Timer2、Command1)
Option Explicit Private Sub Command1_Click() Dim a As Integer Form1.Enabled = False Timer2.Enabled = True For a = 0 To 2000 Text1.Text = a Sleep 1 DoEvents Next ProgressBar1.Value = 100 Timer2.Enabled = False Form1.Enabled = True MsgBox "Download Finish" End Sub Private Sub Form_Load() Timer2.Enabled = False End Sub Private Sub Timer2_Timer() Do If ProgressBar1.Value = 100 Then ProgressBar1.Value = 0 ProgressBar1.Value = ProgressBar1.Value + 10 Exit Do Loop End Sub
效果:
对于使用动态图片实现用户友好提示的,VB不支持动态图片格式GIF,需要分解GIF图片为多个切片图片,然后用timer一帧一帧的实现。
上面两种方式单个单个的运行都还可以,但是当我们执行一个长时间运行的任务时调用它们,在IDE中调试是可以实现,但是打包安装之后运行就不行,非得我们的大任务执行完之后才会调用,或者调用完进度条之后才调用大任务的。在VB中总是这种单任务运行方式。
其实上面的两种方法,第一种只在长时间执行的循环里面有效果,如果长时间执行的不是一个循环而是其他的操作,还是得多线程方式实现。第二种也不稳定,打包,安装之后运行我们的程序还是有个先后调用问题,根本不是异步方式,又还是得多线程,NND胸。
上面的两种方法遇到不是一般的需求,只能用多线程实现了。
见:http://yaojialing.iteye.com/blog/1107370
- 大小: 11.8 KB
- 大小: 20 KB
分享到:
相关推荐
关于vb程序控件进度条的简单实现过程,可以作为平时联系用。
主要用于应用程序处理数据时,显示其处理进度.
VB实现动画进度条,含有源代码!
环形进度条控件 VB.net VS2005
vb.net中实现进度条,线程,缓慢显示。
DataGridView的进度条ProgressBar
VB6带进度条下载,用inet控件实现读取并下载!
用timer和label仿真ProgressBar控制的功能
用VB实现的 很不错哦 做下载软件或者播放器 之类的 很有用处哦
DJMeter.ocx 实现VB载入进度条一例! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
简单的倒计时功能来提醒演讲者的演讲时间,功能还没完善见谅!
本人刚好要用到FTP操作相关,但是查遍网上资料,发现翻来覆去就一个版本,而且光看不消化效果不大,因此自己用VB.net开发了FTP操作类+控制台进度条显示的功能: 1、实现FTP连接检测、文件断点上传、断点下载、获取...
vb 开发的inet控件下载文件带进度条
vb实现在线更新的控件源码(带进度条) 很强大 百度 搜狗 等搜索不到的
用纯VB API实现的FTP上传下载的类,可以指下载,上传有进度控制,在公司里以应用相当长时间,比较稳定。代码结构清晰,附带一调用示例。
VB代码利用FTP实现文件上传于下载代码和总结
URLDownloadToFile函数下载远程文件,可以实现断点续传,通过progressbar也可以实现进度条显示,下载百分比,下载速度的显示,另外也包含读取,写入ini文件的源码..通过setup factory7的文件打包,实现了通过网络更新本地...
VB6.0使用API拷贝文件显示进度条,api拷贝文件并出现进度条,同时还有删除、替换文件的功能,具体实现的功能: 将当前目录中的FileTG.frm文件复制到当前目录下1.frm 将当前目录下的1.frm文件改名位2.frm 将...
VB实现的具有XP风格的进度条,色彩艳丽,可直接下载使用,亦可对齐进行代码分析,有很高的实用性,需要的朋友看下