怎么使Timer控件使用时间超过1分钟

[复制链接]
查看11 | 回复3 | 2011-2-21 03:44:13 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-2-21 03:44:13 | 显示全部楼层
<pre id=\\\"best-answer-content\\\">Use the Timer control for longer than 1 minute

As you know, the Timer control provides a great way to schedule events in a Visual Basic project. When you enable the control, it fires off its Timer event every n milliseconds, as determined by the TimeInterval property. However, the TimeInterval property only accepts numbers up to 65,535, or just over one minute. As a result, you may have wondered how to use this control for periods longer than that. To do so, use a form, or project level, variable to keep track of how many times the Timer event fires. Then, in the Timer event, re-enable the control if enough time hasn注释:t passed. For example, consider the code below that we attached to a standard form.

Option Explicit
Dim iElapsedMin As Integer
Const cMax_Min As Integer = 2

Private Sub Form_Load()
Timer1.Enabled = True
iElapsedMin = 1
End Sub

Private Sub Timer1_Timer()
lblText.Visible = (iElapsedMin = cMax_Min)
Timer1.Enabled = (iElapsedMincMax_Min)
iElapsedMin = iElapsedMin 1
End Sub
回复

使用道具 举报

千问 | 2011-2-21 03:44:13 | 显示全部楼层
<p>

<pre class=\\\"answer-content\\\">MSDN:
Timer 事件示例
这个例子演示一个数字时钟。 要尝试这个例子,可以将代码粘贴到包含一个 Label 控件和一个 Timer 控件窗体的声明部分,然后按 F5。

Private Sub Form_Load ()
Timer1.Interval = 1000 \\\' 设置计时器时间间隔。
End Sub

Private Sub Timer1_Timer ()
Label1.Caption = Time \\\' 更新时间显示。
End Sub

本例在一个窗体内移动一个 PictureBox 控件。要尝试这个例子,可以将代码粘贴到一个包含 Timer 控件和一个 PictureBox 控件窗体的声明部分,然后按 F5。为了得到更好的视觉效果,可以将 PictureBox 的 Picture 属性赋值为一个位图。

Dim DeltaX, DeltaY As Integer \\\' 声明变量。
Private Sub Timer1_Timer ()
Picture1.Move Picture1.Left DeltaX, Picture1.Top DeltaY
If Picture1.LeftScaleLeft Then DeltaX = 100
If Picture1.Left Picture1.WidthScaleWidth ScaleLeft Then

DeltaX = -100
End If
If Picture1.TopScaleTop Then DeltaY = 100
If Picture1.Top Picture1.HeightScaleHeight ScaleTop Then

DeltaY = -100
End If
End Sub

Private Sub Form_Load ()
Timer1.Interval = 1000 \\\' 设置时间间隔。
DeltaX = 100 \\\' 初始化变量。
DeltaY = 100
End Sub





使用 Timer 控件


Timer 控件响应时间的流逝。它们独立于用户,编程后可用来在一定的时间间隔执行操作。此控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理, Timer 控件也非常有用。




每个 Timer 控件都有 Interval 属性,指定定时器事件之间的毫秒数。除非禁止此属性,否则定时器在大致相等的时间间隔不断接受事件(称作定时器事件会更贴切)。

在为 Timer 控件编程时应考虑对 Interval 属性的几条限制:

如果应用程序或其它应用程序正在进行对系统要求很高的操作— 例如长循环、高强度的计算或者正在访问驱动器、网络或端口— 则应用程序定时器事件的间隔可能比 Interval 属性指定的间隔长。


间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。


间隔并不一定十分准确。要保证间隔准确,应在需要时才让定时器检查系统时钟,而不在内部追踪积聚的时间。


系统每秒生成 18 个时钟信号— 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。
每个 Timer 控件必须要与窗体关联。因此要创建定时器应用程序就必须至少创建一个窗体(如果不需要窗体完成其它操作就不必使窗体可见)。

注意 在 Visual Basic 中,单词 \\\"timer\\\" 有好几种用法,每种都与 Timer 控件的工作有关。除了控件名和控件类型以外,\\\"timer\\\" 还用在定时器事件和定时器函数中。

示例应用程序:Alarm.vbp
Alarm 示例 (Alarm.vbp,列在Samples 目录中)应用程序中包含了使用 Timer 控件的技巧。

在窗体上放置 Timer 控件
在窗体上放置 Timer 控件的方法与绘制其它控件的方法相同:单击工具箱中的定时器按钮并将它拖动到窗体上。

Timer 控件只在设计时出现在窗体上,所以可以选定这个控件,查看属性,编写事件过程。运行时,定时器不可见,所以其位置和大小无关紧要。

初始化 Timer 控件
Timer 控件有两个关键属性。

属性 设置值
Enabled 若希望窗体一加载定时器就开始工作,应将此属性设置为 True。否则,保持此属性为 False。有时可能选择由外部事件(例如单击命令按钮)启动定时器操作。
Interval 定时器事件之间的毫秒数。


注意,定时器的 Enabled 属性不同于其它对象的 Enabled 属性。对于大多数对象,Enabled 属性决定对象是否响应用户触发的事件。对于 Timer 控件,将 Enabled 设置为 False 时就会暂停定时器操作。

记住,Timer 事件是周期性的。Interval 属性主要是决定“多少次”而不是“多久”。间隔的长度取决于所需精确度。因为存在某些内部的错误可能性,所以应将间隔设置为精确度的一半。

注意 定时器事件生成越频繁,响应事件所使用的处理器事件就越多。这将降低系统综合性能。除非有必要,否则不要设置过小的间隔。

</p>











参考资料:<span class=\\\"gray\\\">百度一下</span>
回复

使用道具 举报

千问 | 2011-2-21 03:44:13 | 显示全部楼层
<p>

<pre class=\\\"answer-content\\\">timer.Interval = 60000;把timer的间隔设为60000毫秒,也就是60秒,当然,也可设的更大或设成你想要的值
timer.AutoReset = true;timer控件完成一次周期后自动进入下一次周期。
timer.Enable=true;开启控件(如果设为false, timer就停了。)

</p>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行