Foxtable(狐表)用户栏目专家坐堂 → 按钮怎么实现倒计时操作TimerEnabled启动与关闭呢?


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

主题:按钮怎么实现倒计时操作TimerEnabled启动与关闭呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
按钮怎么实现倒计时操作TimerEnabled启动与关闭呢?  发帖心情 Post By:2022/4/26 16:05:00 [只看该作者]

按钮事件代码:
    Forms(e.form.name ).TimerEnabled=False

 

怎么实现用户点击了按钮之后,按钮提示倒计时2分钟,倒计时完毕之后

判断TimerEnabled=False  那就执行TimerEnabled=true  反之就false


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/26 16:07:00 [只看该作者]

e.form.TimerEnabled= not e.form.TimerEnabled

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)e.form.TimerEnabled= not ...  发帖心情 Post By:2022/4/26 16:18:00 [只看该作者]

Timer代码内  怎么写倒计时呢?比如120秒倒计时!

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/26 16:24:00 [只看该作者]

全局变量设置一个初始值,比如120。计时器设置为1000毫秒,计时器代码里给全局变量减1即可,全局变量=0说明120秒到了

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)全局变量设置一个初始值,比如120。计...  发帖心情 Post By:2022/4/26 16:30:00 [只看该作者]

设定全局变量cnt  值为120

窗口计时器设定为1000

计时器代码

Dim bt2 As WinForm.Button = e.Form.Controls("Button7")
bt2.Text= vars("cnt")-1

 

运行结果是  bt2标签显示的是119  没有按照顺序递减至零


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/26 16:33:00 [只看该作者]

vars("cnt") = vars("cnt")-1
bt2.Text= vars("cnt")

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)vars("cnt") = vars("cnt")-1bt...  发帖心情 Post By:2022/4/26 17:11:00 [只看该作者]

定时器代码 【刷新bt2的倒计时数字  当为cnt=0时  点击bt2  反之就定位到指定的条件行】

 

Dim bt2 As WinForm.Button = e.Form.Controls("自选议题")
vars("cnt") = vars("cnt")-1
bt2.Text= vars("cnt")
If vars("cnt")=0 Then
    bt2.PerformClick
Else 
    With Tables(e.form.name & "_table1")
        Dim r As Integer
        r = .FindRow("开始状态= true and 结束状态=false ") '从第一行开始查找
        If r >= 0 Then '如果找到的话
            .Position = r '定位到找到的行.
        End If
    End With
   
End If

 

 

bt2按钮代码:【按一下 暂停定时器  再按一下启动定时器】

If e.form.TimerEnabled=True  Then
    e.form.TimerEnabled=False
    With Tables(e.form.name & "_table1")
        Dim r As Integer
        r = .FindRow("开始状态= true and 结束状态=false ") '从第一行开始查找
        If r >= 0 Then '如果找到的话
            .Position = r '定位到找到的行.
        End If
    End With
Else
    e.form.TimerEnabled=True
    vars("cnt")=120
End If

 

 

上述操作没有能够能够达到预期,老师有没有更加简洁的办法呢?

 

想实现:

窗体打开的时候  默认执行窗体定时器任务

    With Tables(e.form.name & "_table1")
        Dim r As Integer
        r = .FindRow("开始状态= true and 结束状态=false ") '从第一行开始查找
        If r >= 0 Then '如果找到的话
            .Position = r '定位到找到的行.
        End If
    End With

当点击bt2的时候,暂停执行窗体定时器任务

然后开始bt2标题的倒计时数据显示 

当倒计时=0的时候 模拟点击bt2  启动窗体定时器任务  同时将bt2标题改为“自选议题”


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/26 17:17:00 [只看该作者]

倒计时要启用定时器任务才做得了。如果不执行定时器任务,没有办法倒计时

 回到顶部