以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口显示滞后的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88231) |
-- 作者:天若千颖 -- 发布时间: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" 这个代码能实现自动备份,但是问题是,当我点击“数据备份”按钮之后,并没有弹出这个显示进度的窗口,但是数据备份工作已经开始了,当备份完了,这个窗口才弹出来,这是怎么回事? 如何修改让点击“数据备份”这个按钮之后,这个进度窗口就立即显示出来? |
-- 作者:天若千颖 -- 发布时间:2016/7/29 14:17:00 -- 因为数据有点大,所以备份时间要1-2分钟,等备份完了,这个窗口才显示出来。 |
-- 作者:Hyphen -- 发布时间:2016/7/30 8:26:00 -- 开启窗口计时器,上面代码放到TimerClick事件 e.Form.TimerEnabled = False \'这里开始是原来的代码 ......
|
-- 作者:天若千颖 -- 发布时间:2016/8/2 8:16:00 -- 这样不对,进度窗口是打开了,但是进度条不动,也没有执行备份的代码。 |
-- 作者:Hyphen -- 发布时间: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" |
-- 作者:天若千颖 -- 发布时间:2016/8/2 12:38:00 -- 能打开备份的窗口,因为本来“本地备份”这个按钮就是打开这个窗口,现在窗口是打开了,但是滚动条不动,不能备份。 |
-- 作者:狐狸爸爸 -- 发布时间:2016/8/2 12:42:00 -- 参考: http://www.foxtable.com/webhelp/scr/1476.htm |
-- 作者:天若千颖 -- 发布时间:2016/8/2 12:49:00 -- 狐爸,你这个帮助我已经看过了,这个是针对显示的文字的时间问题。 我这个是窗口显示滞后的问题,点击按钮后,窗口弹不出来,但是已经在执行窗口中的代码了,只有执行完了,窗口才显示出来。
|
-- 作者:狐狸爸爸 -- 发布时间:2016/8/2 12:51:00 -- 结合3楼和7楼的方法 |
-- 作者:天若千颖 -- 发布时间:2016/8/2 13:44:00 -- 狐爸,我知道你也比较忙,但是,你们的回答都把问题复杂话了,能直接告诉我一个解决办法吗,楼都跟了好几层了,问题仍然存在。 |