Timer计时器

研究问题:

  1. Timer循环体中怎样避免反复调用的死循环?

要点:
  • 定义其他部件,通过控制其他部件的变化间接的控制所要控制的部件
    如:在Form1里面加个Text1控件,Visble设为False不可见。把Text1当成全局变量使用,其他窗口(比如Form2里面的Label1)要调用的时候,在Form2里面输入代码Label2.Caption = Form1.Text1.text就可以调用。
  • 使用中间变量,在其他部件模块中添加并让计时器Enable=true工作,而在timer中让计时器不工作,即计时器避免了timer中的死循环,仅仅调用了其他部件的控件。
  • 不要在Form_Load事件中定义整型变量h,因为这是局部变量,仅在Load事件中有效,你可以在在代码区域的最顶端定义变量h,它属于全局变量,在整个窗体运行中有效,也可以在Timer控件的Timer事件中定义静态变量h,格式:static h as integer,具体代码如下:
    Private Sub Timer1_Timer()
    Static h As Integer
    h = h + 1
    Text1.Text = h
    End Sub

截图展示区:
  1. 1.
Private Sub Form_Load()
Timer1.Interval = 1000
Label2.Caption = 1
End Sub
Private Sub Label1_Change()
Label2.Caption = Label2.Caption + 1
End Sub
Private Sub Timer1_Timer()
If Label1.Caption <> Str(Timer) Then
Label1.Caption = Time
End If
End Sub

%(注释:当label1.caption发生变化时,label2.caption+1)

引用块内容

  1. 2.
Private Sub Command1_Click()
Num = Val(Text1.Text * 60)
Text1.Text = Num
Timer1.Enabled = True(此时计时器就开始计时,此时避免了循环,因为Timer计时器循环的仅仅是Timer1_Timer()中的结构)
End Sub

Private Sub Form_Load()
Timer1.Enabled = False
Text1.Text = "2"

End Sub

Private Sub Timer1_Timer()
Text1.Text = Text1.Text - 1(设置Enable=false,若设置为true则Text1.Text显示为21,0,时间到,-1,-2….即马上从Command1_Click()中的Text1.Text = "2"传入值就开始循环)
If Text1.Text = 0 Then
A = MsgBox("时间到", 0, "工程1")
End If
End Sub

引用块内容
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值