以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]数据处理进度显示问题【已解决】  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138455)

--  作者:浙江仔
--  发布时间:2019/7/31 15:58:00
--  [求助]数据处理进度显示问题【已解决】
    Dim i As Integer
    Dim s As Integer =Tables("Person_info").Rows.count   
 For Each r As Row In Tables("Person_info")
        i=i+1
        Functions.Execute("refreshTrainDate",r("bmID"),False)  ‘处理数据的函数
        Vars("ProRate") =i/s  ’进度传递,通过窗体计时器展示进度
        Application.DoEvents()  \'没有这个,无法展示进度
    Next

1、使用模式窗口
代码写在afterload,根据代码传递处理进度
存在问题:要等代码执行完毕后,窗体展示,一闪而过

代码写在执行按钮,调用模式窗口,代码无法继续执行。

2、使用独立窗体
进度展示没有问题,但是窗体无法最前端保持,鼠标容易点到其他地方被遮盖

3、使用多线程等待窗体(窗口遮罩)
进度条无法展示(可能行,至少改造比较复杂)

我想求助大神,还有没有好点的方案推荐?
[此贴子已经被作者于2019/7/31 16:29:24编辑过]

--  作者:有点蓝
--  发布时间:2019/7/31 16:04:00
--  
代码不要放到afterload,放到timetick计时器事件