Foxtable(狐表)用户栏目专家坐堂 → 窗口显示滞后的问题


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

主题:窗口显示滞后的问题

帅哥哟,离线,有人找我吗?
天若千颖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
窗口显示滞后的问题  发帖心情 Post By:2016/7/29 14:12:00 [只看该作者]

版主老师,我在功能区设置了一个“”数据备份“”的按钮,按钮的Click事件为打开进度窗口,点击这个按钮后弹出数据备份进度的窗口,窗口中有一个显示备份进度的进度条和文字,窗口的AfterLoad事件代码为:

e.Form.Controls("Label1").Text = "正在进行备份,请稍后..."
Application.DoEvents()
Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
p.Maximum = DataTables.Count
'设置最大值
p.Minimum = 0 '设置最小值
p.Value = 0 '设置当前值
Dim t As String
Dim i As Integer = 0
Dim cs As String
cs=Format(Date.Now, "yyyyMMddHHmmss")
For Each dt As DataTable In DataTables
    Dim ex As New Exporter
ex.FilePath = ProjectPath & "Backup\" & cs & ".mdb"
    ex.SourceTableName = dt.Name
    i= i + 1
p.value=i
    t = dt.LoadFilter
    If t <> "" Then
        dt.LoadFilter= ""
        dt.load
        ex.Export()
        dt.LoadFilter = t
        dt.load
    Else
        ex.Export()
    End If
Next
e.Form.Controls("Label1").Text = "备份完成"
e.Form.Controls("Label3").Text = " 文件名:" & cs & ".mdb"


这个代码能实现自动备份,但是问题是,当我点击“数据备份”按钮之后,并没有弹出这个显示进度的窗口,但是数据备份工作已经开始了,当备份完了,这个窗口才弹出来,这是怎么回事?

如何修改让点击“数据备份”这个按钮之后,这个进度窗口就立即显示出来?


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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/7/29 14:17:00 [只看该作者]

因为数据有点大,所以备份时间要1-2分钟,等备份完了,这个窗口才显示出来。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/30 8:26:00 [只看该作者]

开启窗口计时器,上面代码放到TimerClick事件

e.Form.TimerEnabled = False
'这里开始是原来的代码
......

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


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/2 8:16:00 [只看该作者]

这样不对,进度窗口是打开了,但是进度条不动,也没有执行备份的代码。

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/2 11:50:00 [只看该作者]

看能不能弹出对话框

e.Form.TimerEnabled = False
e.Form.Controls("Label1").Text = "正在进行备份,请稍后..."
Application.DoEvents()
Dim p As WinForm.ProgressBar
p = e.Form.Controls("ProgressBar1")
p.Maximum = DataTables.Count
'设置最大值
p.Minimum = 0 '设置最小值
p.Value = 0 '设置当前值
Dim t As String
Dim i As Integer = 0
Dim cs As String
cs=Format(Date.Now, "yyyyMMddHHmmss")
For Each dt As DataTable In DataTables
msgbox(dt.Name) 
    Dim ex As New Exporter
    ex.FilePath = ProjectPath & "Backup\" & cs & ".mdb"
    ex.SourceTableName = dt.Name
    i= i + 1
    p.value=i
    Application.DoEvents()
    t = dt.LoadFilter
    If t > "" Then
        dt.LoadFilter= ""
        dt.load
        ex.Export()
        dt.LoadFilter = t
        dt.load
msgbox("1") 
    Else
msgbox("2")
        ex.Export()
    End If
Next
e.Form.Controls("Label1").Text = "备份完成"
e.Form.Controls("Label3").Text = " 文件名:" & cs & ".mdb"

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/2 12:38:00 [只看该作者]

能打开备份的窗口,因为本来“本地备份”这个按钮就是打开这个窗口,现在窗口是打开了,但是滚动条不动,不能备份。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/8/2 12:42:00 [只看该作者]

参考:
http://www.foxtable.com/webhelp/scr/1476.htm


 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/2 12:49:00 [只看该作者]

狐爸,你这个帮助我已经看过了,这个是针对显示的文字的时间问题。

我这个是窗口显示滞后的问题,点击按钮后,窗口弹不出来,但是已经在执行窗口中的代码了,只有执行完了,窗口才显示出来。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/8/2 12:51:00 [只看该作者]

 结合3楼和7楼的方法

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:683 积分:4882 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/2 13:44:00 [只看该作者]

狐爸,我知道你也比较忙,但是,你们的回答都把问题复杂话了,能直接告诉我一个解决办法吗,楼都跟了好几层了,问题仍然存在。

 回到顶部
总数 19 1 2 下一页