一、计时器
计时器(Timer)是按一定的时间间隔(Interval)周期性地自动触发Timer事件的控件,类似于循环程序结构。根据计时器的这个特性,可以设计具有动画效果的程序或用于程序的计时。计时器控件不能改变大小,在程序运行期间,计时器控件也不显示在窗体上。
计时器常用属性、事件和方法
1.常用属性
⑴ Interval属性
该属性值为整型,用来设置Timer事件之间的时间间隔。其值以毫秒ms(0.001s)为单位,介于0~65535ms之间,因此其最大的时间间隔不能超过65秒。如果希望每隔1秒发生一次Timer事件,那么Interval属性值应设为1000。将Interval属性设置为0表示屏蔽计时器。
⑵ Enabled属性
该属性值为逻辑型,用来设置计时器是否有效。经常通过设置Enabled属性为True或False来开启或关闭计时器。
True(默认值):有效
False:无效
2.常用事件
计时器只有一个Timer事件,每隔一个Interval时间间隔,就会自动发生一次该事件,该事件过程中的代码就被执行一次,直到计时器的Enabled属性为False时停止。
二、图片框
图片框控件(PictureBox)的主要作用是显示图片和绘制图形,同时,图片框控件是容器类控件,可作为其他控件的容器,同时还支持Print、Cls、Line和Circle等方法。
1.常用属性
⑴Picture属性
该属性用于将图片显示到图片框。该属性可以在设计阶段的属性窗口中进行设置,也可以在程序中用LoadPicture函数设置。
⑵Autosize属性
该属性值为逻辑型,决定是否允许图片框自动调整尺寸,以适应图片的原始尺寸。True表示允许,False表示不允许。
将Auosize属性设置为False时,图片框不能自动改变大小来适应图片的原始尺寸,这意味着如果图片比图片框大,则在图片框中只能显示图片的一部分。
2.常用方法
图片框支持Print、Circle、Line、Point和Pset等绘图方法。
3.常用事件
图片框可以响应Click、DblClick、键盘和鼠标等事件,但在实际应用中很少对其编写事件过程,图片框的主要功能是显示图片。
三、图像框
图像框控件(Image)也可以用来显示图片,但不能作为其它控件的容器,也不接受Print、Cls、Line和Circle等方法,也就是说,不能在图像框上显示文本和绘制图形。与图片框(PictureBox)相比,图像框显示图片时占用更少的内存,显示图片的速度更快。
1.常用属性
⑴Picture属性
该属性用于将图片显示到图像框。该属性可以在设计阶段的属性窗口中进行设置,也可以在程序中用LoadPicture函数设置。
⑵ Stretch属性
该属性值为逻辑型,决定是否允许图片自动调整尺寸,以适应图象框的尺寸。True表示允许,False表示不允许。
Stretch属性与图片框(PictureBox)的Autosize属性不同。Autosize属性用来调整图片框的大小以适应图片大小,Stretch属性则用来调整图片以适应图像框的大小。
2.常用事件
图像框可以响应Click、DblClick和鼠标等事件,和图片框一样,在实际应用中也很少对其编写事件过程。
=======================================================================================
实验
设计自动变换的交通灯程序
项目说明: 单击开车开始计时,小汽车自动前进的,信号灯自动计时,当小车开到交通灯下时,如果变为黄灯,小车停止前进,信号灯继续变化,直到变为绿灯,小车才继续前进。
项目分析:
程序中添加两个计时器,分别用来控制小车运动和交通灯变化
红黄绿三个颜色的灯时三幅图片,按一定的时间间隔交替显示
项目设计:
⑴ 创建界面。新建一个标准EXE工程,在窗体中添加2个计时器、2个图片框和1个命令按钮。
⑵ 设置属性。
计时器Interval属性设置为1000,Enabled属性设置为False
放交通灯的图片框改名为p1,放小车的图片框改名为p2,按钮改名为c1。
P2的Picture属性设置为小汽车图片。
⑶ 编写事件过程代码如下:
Private SubC1_Click() ‘按钮的click事件发生时两个计时器开始计时
Timer1.Enabled = True
Timer2.Enabled = True
b = True
End Sub
Private SubTimer1_Timer()
’在timer事件中,利用变量a控制灯的颜色,a在1到6之间依次变化,利用selectcase语句实现多分支的选择,当a为1时黄灯亮,23红灯亮 456绿灯亮
a = a + 1
If a > 6 Then
a = 1
End If
Select Case a
Case 1
P1.Picture = LoadPicture("黄灯.ico")
Case 2, 3
P1.Picture = LoadPicture("红灯.ico")
Case 4, 5, 6
P1.Picture = LoadPicture("绿灯.ico")
If b Then Timer2.Enabled = True
End Select
End Sub
Private SubTimer2_Timer()
‘timer2用来控制小汽车的前进,如果移动到信号灯前并且遇到红灯或黄灯,则停止移动,当变为绿灯后再继续移动
If (a < 4) And (P2.Left > P1.Left AndP2.Left < P1.Left + P1.Width) Or P2.Left <= 100 Then
Timer2.Enabled = False
Else
P2.Move Form1.P2.Left - 10, P2.Top,P2.Width, P2.Height
End If
End Sub

