Office中国论坛/Access中国论坛
标题:
字符闪烁中窗体ontimer属性问题
[打印本页]
作者:
root
时间:
2013-8-3 17:02
标题:
字符闪烁中窗体ontimer属性问题
效果:点击按钮字符闪烁,再次点击则停止。
Private Sub btnFlashLabel_Click()
If Me!btnPulseLabel.Caption = "Stop" Then Exit Sub //其他功能按钮
If Me!btnTitleBar.Caption = "Stop" Then Exit Sub //其他功能按钮
If Me!Switcher = "False" Then
Me.OnTimer = "=LabelFlasher()" //这个函数实现亮灭一次(函数没有贴出),是不是按第一次时一直执行这个函数。再 按 一次时则执行else后面的语句。ontimer 属性怎么运行,它什么时候停止。
Me!Switcher = "True"
Me!btnFlashLabel.Caption = "Stop"
Me!btnFlashLabel.ForeColor = 255
Else
Me.OnTimer = ""
Me.Switcher = "False"
Me!btnFlashLabel.Caption = "Blinken"
Me.FlashLabel.Visible = True
Me!btnFlashLabel.ForeColor = 0
End If
End Sub
求教这个过程的运行细节。
作者:
tmtony
时间:
2013-8-3 17:07
这个就是利用窗体的定时器事件 Timer事件 来实现的,有什么不太明白? 具体哪句代码?
作者:
root
时间:
2013-8-3 18:22
这一段:
If Me!Switcher = "False" Then
Me.OnTimer = "=LabelFlasher()"
Me!Switcher = "True"
Me!btnFlashLabel.Caption = "Stop"
Me!btnFlashLabel.ForeColor = 255
为什么一按按钮就一直执行LabelFlasher(),直到第二次按下按钮才去执行else语句后面的代码。
如果一按按钮就一直执行LabelFlasher(),那么这些语句
Me!Switcher = "True"
Me!btnFlashLabel.Caption = "Stop"
Me!btnFlashLabel.ForeColor = 255
是不是应该等LabelFlasher()执行完了再运行。可实际上并不是这样的。实际运行是:一按下按钮按钮就变成红色stop
并且字符一直闪烁。再单击则回到开始的状态。
作者:
tmtony
时间:
2013-8-4 10:00
因为 开始 Me!Switcher = "False" 所以就执行
Me.OnTimer = "=LabelFlasher()"
而 ONTIMER事件执行时
你又设置了 Me!Switcher = "True" 所以他就执行了Else的代码
作者:
root
时间:
2013-8-6 11:21
你好站长,你看程序是不是这样运行:ontimer事件执行一次后就应该执行else后面的代码,然后又返回到if语句再次执行ontimer事件,然后再次执行else后面的代码。这样一直循环下去吗
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3