求助如何使用java计时器零点触发串联触发

扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
求助一道关于时钟的问题窗体上添加一个计时器和一个label1,计时器每秒触发一次,label1上显示数字为5,设计使得程序运行时,标签label1显示的数字按每秒递减1,当显示为“0”时,倒计时停止.
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
你看下,是不是要这样子:Private Sub Form_Load()
Timer1.Interval = 1000End SubPrivate Sub Timer1_Timer()
Label1.Caption = Val(Label1.Caption) - 1
If Label1.Caption = "0" Then
Timer1.Enabled = False
'或 Timer1.Interval = 0
End IfEnd Sub主要用计时器的Enabled和Interval两个属性.
为您推荐:
其他类似问题
扫描下载二维码在.net中有三种计时器,一是System.Windows.Forms命名空间下的Timer控件,它直接继承自C二是System.Timers命名空间下的Timer类。
Timer控件:Timer控件只有绑定了Tick事件,和设置Enabled=True后才会自动计时,停止计时可以用Stop()控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。Timer控件和它所在的Form属于同一个线程;
System.Timers.Timer类:定义一个System.Timers.Timer对象,绑定Elapsed事件,通过Start()方法启动计时,通过Stop()方法或者Enable=False停止计时。AutoReset属性设置是否重复计时。Elapsed事件绑定就相当另开了一个线程,也就是说在Elapsed绑定的事件里不能访问其它线程里的控件。
System.Threading.Timer:定义该类时,主要有四个参数。TimerCallBack,一个返回值为void,参数为object的委托,也是计时器执行的方法。Object state,计时器执行方法的的参数。 int dueTime,调用&callback&之前延迟的时间量(以毫秒为单位)。指定&Timeout.Infinite&以防止计时器开始计时。指定零&(0)&以立即启动计时器。
int Period,调用&callback&的时间间隔(以毫秒为单位)。指定&Timeout.Infinite&可以禁用定期终止。
在这三种计时器中,第一种计时器和所在的Form处于同一个线程,因此执行的效率不高。而第二种和第三中计时器执行的方法都是新开一个线程,所以执行效率比第一种计时器要好。因此在使用计时器时,建议使用第二种和第三种。
下面是三中定时器使用的例子
1)Timer控件&&
& public partial class Timer : Form&&& {
&&&&&&& int count = 0;&&&&&&& public Timer()&&&&&&& {&&&&&&&&&&& InitializeComponent();
&&&&&&&&&&& //timer控件可用&&&&&&&&&&& this.timer1.Enabled =
&&&&&&&&&&&//设置timer控件的Tick事件触发的时间间隔&&&&&&&&&&& this.timer1.Interval = 1000;
&&&&&&&&&&& //停止计时&&&&&&&&&&& this.timer1.Stop();&&&&&&& }
&&&&&&& private void timer1_Tick(object sender, EventArgs e)&&&&&&& {&&&&&&&&&&& count += 1;&&&&&&&&&&& this.tbTimer.Text = count.ToString();&&&&&&& }
&&&&&&& private void btStart_Click(object sender, EventArgs e)&&&&&&& {&&&&&&&&&&& //开始计时&&&&&&&&&&& this.timer1.Start();&&&&&&& }
&&&&&&& private void btStop_Click(object sender, EventArgs e)&&&&&&& {&&&&&&&&&&& //停止计时&&&&&&&&&&& this.timer1.Stop();&&&&&&&&&&&&&&&&&&& }
2)System.Timers.Timer
public partial class Timer : Form&&& {&&&&&&& int count = 0;
&&&&&&& private System.Timers.Timer timer = new System.Timers.Timer();
&&&&&&& public Timer()&&&&&&& {&&&&&&&&&&& InitializeComponent();
&&&&&&&&&&& //设置timer可用&&&&&&&&&&& timer.Enabled =&&&&&&&&&&&&&&&&&&&&&&& //设置timer&&&&&&&&&&& timer.Interval = 1000;
&&&&&&&&&&& //设置是否重复计时,如果该属性设为False,则只执行timer_Elapsed方法一次。&&&&&&&&&&& timer.AutoReset =
&&&&&&&&&&& timer.Elapsed+=new System.Timers.ElapsedEventHandler(timer_Elapsed);&&&&&&& }
&&&&&&& private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)&&&&&&&& {&&&&&&&&&&& count += 1;&&&&&&&&&&& SetTB(count.ToString());&&&&&&& }
&&&&&&& private void btStart_Click(object sender, EventArgs e)&&&&&&& {&&&&&&&&&&& timer.Start();&&&&&&& }
&&&&&&& private void btStop_Click(object sender, EventArgs e)&&&&&&& {&&&&&&&&&&& timer.Stop();&&&&&&& }
&&&&&&& private delegate void SetTBMethodInvok(string value);
&&&&&&& private void SetTB(string value)&&&&&&& {&&&&&&&&&&& if (this.InvokeRequired)&&&&&&&&&&&& {&&&&&&&&&&&&&&& this.Invoke(new SetTBMethodInvok(SetTB), value);&&&&&&&&&&& }&&&&&&&&&&& else&&&&&&&&&&& {&&&&&&&&&&&&&&& this.tbTimer.Text =&&&&&&&&&&& }&&&&&&& }&&& }
3) System.Threading.Timer
&&& public partial class Timer : Form&&& {&&&&&&& int count = 0;&&&&&&& System.Threading.Timer timerT&&&&&&& private delegate void SetTBMethodInvoke(object state);
&&&&&&& public Timer()&&&&&&& {&&&&&&&&&&& InitializeComponent();
&&&&&&&&&&& //初始化一个计时器,一开始不计时,调用Callback的时间间隔是500毫秒&&&&&&&&&&& timerThr = new System.Threading.Timer(new TimerCallback(SetTB), null, Timeout.Infinite, 500);&&&&&&& }
&&&&&&& public void SetTB(object value)&&&&&&& {&&&&&&&&&&& if (this.InvokeRequired)&&&&&&&&&&& {&&&&&&&&&&&&&&& this.Invoke(new SetTBMethodInvoke(SetTB), value);&&&&&&&&&&& }&&&&&&&&&&& else&&&&&&&&&&&& {&&&&&&&&&&&&&&& count += 1;&&&&&&&&&&&&&&& this.tbTimer.Text = count.ToString();&&&&&&&&&&& }&&&&&&& }
&&&&&&& private void btStart_Click(object sender, EventArgs e)&&&&&&& {&&&&&&&&&&& //开始计时&&&&&&&&&&& timerThr.Change(0, 500);&&&&&&& }
&&&&&&& private void btStop_Click(object sender, EventArgs e)&&&&&&& {&&&&&&&&&&& //停止计时&&&&&&&&&&& timerThr.Change(Timeout.Infinite, 500);&&&&&&& }&&& }
阅读(...) 评论()}

我要回帖

更多关于 时间计时器在线使用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信