Foxtable(狐表)用户栏目专家坐堂 → 进度提示


  共有4507人关注过本帖树形打印复制链接

主题:进度提示

帅哥哟,离线,有人找我吗?
魔鬼之神
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:166 积分:1527 威望:0 精华:0 注册:2013/1/26 14:43:00
进度提示  发帖心情 Post By:2013/12/6 14:27:00 [只看该作者]

例如我在打开单据列表,或执行某个事件时,能在界面上有一个完成进度提示,这个是否能做?我看到帮助里说进度条会影响性能。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/6 14:29:00 [只看该作者]

可以做到,但是进度条会影响性能,加长执行时间.

 回到顶部
帅哥哟,离线,有人找我吗?
魔鬼之神
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:166 积分:1527 威望:0 精华:0 注册:2013/1/26 14:43:00
回复:(Bin)可以做到,但是进度条会影响性能,加长执行...  发帖心情 Post By:2013/12/6 14:34:00 [只看该作者]

那岂不是没什么意义啦?我觉得平台在这个方面应该要改进,目前是什么个状态呢,比如在外网多点访问软件时,审核个单据,就像是死机一样,至少要有一个提示给操作用户告诉他后台正在执行,如果这个没法完善,很多时候就决定了只能是给单机版的客户使用。

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/12/6 14:40:00 [只看该作者]

DoEvents语句

新建一个窗口,增加一个标签和一个按钮,按钮的Click事件设为:

e.Form.Controls("Label1").Text = "正在增加行,请稍后..."
CurrentTable
.AddNew(10000)
e.Form.Controls(
"Label1").Text =
"已经完成."

打开窗口单击按钮,按道理在增加行的时候,标签应该显示“正在增加行,请稍后...”,可实际上标签只是在增加行结束的时候,显示“已经完成.”。这是为什么呢?这是因为Windows是多任务的,绘制控件属于优先级别较低的任务,直到我们执行完所有的代码,Windows才会去绘制控件,从而出现上述异常。

有什么办法让绘制控件的代码即刻生效呢?有,我们只需在代码中间插入一行:

Application.DoEvents

即刻暂停代码的执行,重新绘制控件后,继续执行代码。

所以我们原来的代码应该改为:

e.Form.Controls("Label1").Text = "正在增加行,请稍后..."
Application.DoEvents()

CurrentTable
.AddNew(10000)
e.Form.Controls(
"Label1").Text =
"已经完成."



  可以看看这个


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/12/6 14:48:00 [只看该作者]





[此贴子已经被作者于2013-12-6 14:48:59编辑过]

 回到顶部