关于VB中Timer停止的问题
2012-12-07 21:50
155 查看
学VB的一个朋友在有关Timer控件停止的问题,我给了一个回答:
将Enabled设为False,或者将Interval设为0
于是TA问,两者有什么区别呢?
就这个问题,我们还是来做一个实验吧。
创建一个新工程,在默认新建的窗体上,创建3个Command和一个Timer
使用如下代码:
点击Start按钮,每秒钟窗体的标题就显示加一,在变化刚完成时立刻点击Interval按钮,发现它会继续下一个动作才停
重新点Start按钮,这次在刚完成时,立刻点击Enabled按钮,发现立刻被终止了。
其实,Timer控件封装了Windows的计时API,每次触发事件,就调用SetTimer,把Interval的值传递
再次等待Interval后触发事件,设置Interval只影响下一次事件,而不影响正在等待的事件。
而设置Enabled为False会取消等待中的计时器,所以立刻被终止了。
将Enabled设为False,或者将Interval设为0
于是TA问,两者有什么区别呢?
就这个问题,我们还是来做一个实验吧。
创建一个新工程,在默认新建的窗体上,创建3个Command和一个Timer
使用如下代码:
Option Explicit Private dwCount As Long Private Sub Command1_Click() dwCount = 0 Timer1.Interval = 1000 Timer1.Enabled = True End Sub Private Sub Command2_Click() Timer1.Interval = 0 End Sub Private Sub Command3_Click() Timer1.Enabled = False End Sub Private Sub Form_Load() Command1.Caption = "Start" Command2.Caption = "Interval" Command3.Caption = "Enabled" Call Command3_Click End Sub Private Sub Timer1_Timer() dwCount = dwCount + 1 Me.Caption = CStr(dwCount) End Sub
点击Start按钮,每秒钟窗体的标题就显示加一,在变化刚完成时立刻点击Interval按钮,发现它会继续下一个动作才停
重新点Start按钮,这次在刚完成时,立刻点击Enabled按钮,发现立刻被终止了。
其实,Timer控件封装了Windows的计时API,每次触发事件,就调用SetTimer,把Interval的值传递
再次等待Interval后触发事件,设置Interval只影响下一次事件,而不影响正在等待的事件。
而设置Enabled为False会取消等待中的计时器,所以立刻被终止了。
相关文章推荐
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- 关于解决Photoshop CS5打开后出现已停止工作强制退出的问题
- 一些关于VB中字符串操作的问题和回答
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- [VB.NET]关于 软件打包问题 头大了 555~~~
- [VB.NET]一个关于VB2005中 listbox的奇怪的问题
- 关于apmxe-2009-01-20在VISTA下报错导致apche http server停止工作的问题
- 关于COM Surrogate已经停止工作的问题的处理
- 关于编译内核后出现start kernel...停止不动的问题及解决方法
- 关于Timer计时器控件的java.lang.IllegalStateException: TimerTask is scheduled already问题分析
- [VB.NET]关于datatable在datagrade中显示的格式问题(在线)
- [VB.NET]请教!!!关于DateTimePicker的问题....
- 关于VS2008下提示microsoft incremental linker已停止工作的问题
- 关于 《cocoapods 的taobao的镜像停止更新问题》
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- windows7关闭"***已停止工作"和"您想发送关于此问题的详细信息吗"提示
- 关于C#timer 时间精确度的问题
- java高级多线程编程--关于线程的停止问题
- 关于窗口Qt线程停止的问题