Foxtable(狐表)用户栏目专家坐堂 → 动态label怎样实现?


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

主题:动态label怎样实现?

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
动态label怎样实现?  发帖心情 Post By:2014/6/18 19:52:00 [只看该作者]

如下以代码:

 

forms("进度条窗口").Show
If forms("进度条窗口").Opened Then
    Dim p As WinForm.ProgressBar=Forms("进度条窗口"). Controls("ProgressBar1")
    Dim l As WinForm.Label =Forms("进度条窗口"). Controls("Label1")
    Dim word As String=l.text
    Dim t As Table=Tables("表目录")
    '''
    p.Minimum = 0 '设置最小值
    p.Maximum = t.Rows.count '设置最大值
   
    For Each r As Row In t
        r("顺序号")=r.Index+1
        '    t.Position=r.Index
        r.DataRow.Save
        p.Value = r.Index  '设置当前值
        l.Text=word & str(r.Index+1/p.Maximum*100) & "%"
    Next
    Forms("进度条窗口").Close
End If

Functions.Execute("刷新导航页签")

 

1、如红字部分,想实现动态的百分比变化,但是实际效果是压根显示不出来,进度条的进程比较正常!怎么解决呀?

2、另外展示进度条的窗口如果用成模式窗口就不动了,若是用成独立窗口,又担心任务进展未完成时用户进行别的操作,该如何解决呀?

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/18 19:58:00 [只看该作者]

 第一个问题:

 

试试这样

 

l.Text= word & str((r.Index+1)/p.Maximum*100) & "%"

Application.DoEvents()

 

 第二个问题:不能用模式窗口,你可以这样

 

forms("进度条窗口").Show

forms("进度条窗口").ToMost

LockBaseMainForm

 

'执行代码

 

UnLockBaseMainForm


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/6/19 16:11:00 [只看该作者]

forms("进度条窗口").ToMost  这句是什么意思呢?而且报错,提示tomost不是winform的成员呀!

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


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

TOPMOST

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/6/19 17:04:00 [只看该作者]

LockBaseMainForm是锁定主窗口,我的窗口不是主窗口,而是模式窗口,比如是:forms("设置窗口"),窗口有保存按钮,点保存按钮时调用forms("进度条窗口"),显示进度情况,但我想在进度条窗口显示过程中,用户不可以操作forms("设置窗口"),如何实现?

 

试验了StopRedraw和ResumeRedraw,但是效果不理想,比如竟然仍可以在进度条窗口显示过程中,拖动forms("设置窗口")并可以选定窗口中的表,不知怎么杜绝!


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/6/19 17:07:00 [只看该作者]

或者是转换思路,将进度条窗口设为模式窗口?然后将代码写入进度条窗口的afterload事件里?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/19 17:10:00 [只看该作者]

以下是引用hdffzxf在2014-6-19 17:07:00的发言:
或者是转换思路,将进度条窗口设为模式窗口?然后将代码写入进度条窗口的afterload事件里?

 

嗯嗯,把代码放到afterload事件。


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/6/23 12:05:00 [只看该作者]

接上面的思路,如果将进度条窗口设为模式窗口,将进度代码放入afterload事件的话,那针对不同的表,我就得设计N多个进度条窗口,这明显浪费资源,不是个好的解决方案。我想就设计一个进度条窗口,不同的窗体中的表都可以调用它。


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/6/23 12:07:00 [只看该作者]

或者我就得声明全局变量了,让label1和ProgressBar1的值对应等用全局变量,这倒也可以,但我尽量不想用全局变量

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/23 14:17:00 [只看该作者]

以下是引用hdffzxf在2014-6-23 12:07:00的发言:
或者我就得声明全局变量了,让label1和ProgressBar1的值对应等用全局变量,这倒也可以,但我尽量不想用全局变量

 

那就没办法了,模式窗口就是要特殊处理的。


 回到顶部