第十一讲 VB常用标准控件(2)
第5章 VB常用标准控件 5.1 单选按钮、复选框、框架 5.2 列表框、组合框 5.3 计时器、滚动条 5.4 图形控件
本讲教学内容 5.3 计时器、滚动条 5.4 图形控件
5.3 计时器和滚动条 一、计时器(Timer) 1. 计时器的特点 5.3 计时器和滚动条 一、计时器(Timer) 1. 计时器的特点 计时器控件通过Timer 事件,可以有规律地隔一段时间执行一次事件过程代码。 2. 计时器的属性 ①Interval属性:这个属性可以设定Timer 事件触发的时间间隔,其时间间隔以毫秒为单位,取值范围为0~65535毫秒。一般设为1000毫秒,这样可以每秒种触发一次Timer 事件。
②Enabled 属性:计时器的Enabled 属性也是较常用的属性,该属性决定计时器控件是否能对时间的推移做出响应。若将Enabled 设置为 False ,此时计时器控件无效,即Timer事件不会触发;当Enabled设置为 True时,计时器控件有效。 3. 计时器的事件 计时器的事件只有一个,为Timer事件。Timer事件的触发时间是从Interval 属性的设置值开始,以后每隔这样一个时间段,就触发一次Timer事件。需要说明的是当Interval 属性值为0时,计时器无效。
4. 计时器的应用举例 【例5-7】设计一个应用程序,界面如下图所示。当程序运行时在单击窗体输入姓名后,标签框1中文字“您好!XX”从右向左移动,标签框2中文字“欢迎学习Timer控件”从左向右移动,且文字颜色每秒随机改变一次。
设计步骤: ①新建一个工程,设置窗体的Caption属性为“计时器控件示例”。 ②按上图所示,在窗体上添加3个标签框和3个计时器,按界面所示设置Label2的Caption属性值。 ③编写事件过程代码。
Private Sub Form_Load() Label1.AutoSize = True: Label3.AutoSize = True Label1.FontSize = 18: Label3.FontSize = 15 Label1.BackStyle = 0: Label3.BackStyle = 0 Label1.Visible = False: Label3.Visible = False Timer1.Interval = 500 Timer2.Interval = 1000 Timer3.Interval = 100 Timer1.Enabled = False Timer2.Enabled = False Timer3.Enabled = False End Sub
Private Sub Form_Click() a = InputBox("请输入您的姓名:") Label1.Visible = True Label3.Visible = True Label1 = "您好!" & a Label3 = " 欢迎学习Timer控件" Timer1.Enabled = True Timer2.Enabled = True Timer3.Enabled = True Label2.Visible = False End Sub
Private Sub Timer1_Timer() Label1.Left = Label1.Left - 100 If Label1.Left < 0 Then Label1.Left = Form1.Width End If End Sub Private Sub Timer2_Timer() Randomize Label1.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) Label3.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255) End Sub
Private Sub Timer3_Timer() Label3.Left = Label3.Left + 100 If Label3.Left > ScaleWidth Then Label3.Left = 0 End If End Sub
④运行该应用程序,单击窗体输入姓名后,出现如下图所示界面。文字在窗体中移动,且每秒颜色随机改变一次。
一、滚动条 1. 滚动条的特点 在项目列表很长或者信息量很大时,可以使用滚动条来提供简便的定位,模拟当前所在的位置。滚动条还可以作为输入设备,或者速度、数量的指示器来使用。 VB中的滚动条可分为水平滚动条(HScrollBox)和垂直滚动条(VScrollBox)两种。无论那种滚动条,其两端各有一个滚动箭头,中间拥有一个可滑动的滑块。
2. 滚动条的属性 Value属性:记录滑块在滚动条内当前位置的值。 Max和Min属性:用来设置滚动条Value值的最大值和最小值。水平滚动条的滑块在最左端表示最小值Min,由左往右移动时,Value值随之递增,到最右端是最大值Max。垂直滚动条的滑块在最上端表示最小值Min,由上向下移动Value值随之递增,到最下端为最大值Max。 LargeChange属性:设置每当鼠标在滚动条内单击时,滑块增(减)的Value属性值。 SmallChange属性:设置每当鼠标单击滚动条两端的箭头时,滑块增(减)的Value属性值。
3. 滚动条的事件 Change事件:该事件在滑块进行滚动或通过代码改变 Value 属性值时发生。 Scroll事件:当在滚动条内拖动滑块时触发该事件。
4. 滚动条的应用举例 【例5-8】设计一个应用程序,界面如下图所示。用水平滚动条表示速度(范围1~100 km/h),垂直滚动条表示时间(范围1~100 h),当时间和速度发生变化时自动计算距离。
①新建一个工程,设置窗体的Caption属性为“计算距离程序”。 设计步骤: ①新建一个工程,设置窗体的Caption属性为“计算距离程序”。 ②按上图所示,在窗体上添加1个水平滚动条、1个垂直滚动条、5个标签框和3个文本框,并按图5.18所示设置各控件的属性。另外滚动条的属性按下表所示设置。 控件名称 属性名 属性值 HScroll1 Max 100 Min VScroll1
③编写事件过程代码。 Private Sub Form_Load() Text1.Text = 0 & " h": Text2.Text = 0 & " km/h" Text3.Text = 0 & " km" End Sub Private Sub HScroll1_Change() Text2.Text = HScroll1.Value & " km/h" Text3.Text = Str(HScroll1.Value * VScroll1.Value) & " km" End Sub
Private Sub HScroll1_Scroll() Text2.Text = HScroll1.Value & " km/h" Text3.Text = Str(HScroll1.Value * VScroll1.Value) & " km" End Sub Private Sub VScroll1_Change() Text1.Text = VScroll1.Value & " h" Text3.Text = HScroll1.Value * VScroll1.Value & " km"
Private Sub VScroll1_Scroll() Text1.Text = VScroll1.Value & " h" Text3.Text = HScroll1.Value * VScroll1.Value & " km" End Sub
④运行该应用程序,随着滚动条的变化将自动计算距离,如下图所示。
【例5-9】设计一个应用程序,初始界面如下图所示。其功能要求为:①可以根据不同的日期格式显示日期,要求拥有的日期格式为“年/月/日”、“月/日/年”和“日/月/年”;②根据12或24小时制显示时间;③另外还有一个最大计时为60秒的计时秒表。
设计步骤: ①新建一个工程,设置窗体的Caption属性为“计时秒表”。 ②按上图所示,设计界面和属性,其中Combo1为下拉列表框。 ③编写事件过程代码。
Option Explicit Dim seconds As Integer Private Sub Form_Load() ' 设置运行初始状态 Text1.Text = Date$ Text2.Text = Time$ Combo1.Text = " 年/月/日" Combo1.AddItem " 年/月/日" Combo1.AddItem " 月/日/年" Combo1.AddItem " 日/月/年" Option2.Value = True Frame3.Visible = False Form1.Height = 3800 Timer1.Interval = 1000 Timer2.Interval = 1000 Timer2.Enabled = False HScroll1.Min = 0 HScroll1.Max = 60 End Sub
Private Sub Timer1_Timer() ' 根据所选的显示格式,每秒刷新日期和时间的显示内容 If Option1.Value = True Then Text2.Text = Format(Now, "hh:mm:ss AM/PM") Else Text2.Text = Format(Now, "hh:mm:ss") End If Select Case Combo1.ListIndex Case 0 Text1.Text = Format(Now, "yyyy/mm/dd") Case 1 Text1.Text = Format(Now, "mm/dd/yyyy") Case 2 Text1.Text = Format(Now, "dd/mm/yyyy") Case Else End Select End Sub
Private Sub Check1_Click() ' 设置计时秒表有效 Frame3.Visible = True Form1.Height = 5500 End Sub Private Sub Command1_Click() ' 开始计时 seconds = 0 Text3.Text = seconds Timer2.Enabled = True Call Timer2_Timer End Sub
Private Sub Timer2_Timer() seconds = seconds + 1 Text3.Text = seconds & "秒" HScroll1.Value = seconds End Sub Private Sub Command2_Click() ' 关闭Timer2计时器,停止秒表计时 Timer2.Enabled = False Private Sub Command3_Click() End
④运行该应用程序,出现如下图所示界面,可以在窗体中改变日期和时间格式。
⑤若用户需要用秒表功能,只需选中“使用计时秒表”复选框,其界面如下图所示。
5.4 图形控件 一、图片框(PictureBox) 1. 图片框的作用 5.4 图形控件 一、图片框(PictureBox) 1. 图片框的作用 图片框控件的主要作用是为用户显示图片,它可以从文件中装入并显示Bmp(位图文件)、Icon(图元文件)、JPEG和GIF几种格式的文件。 图片框也可作为其它控件的容器。
2. 图片框的常用属性 ①Picture属性:这个属性用于设置在图片框中要显示图像的文件名。 ② AutoSize属性:这个属性用于设置图片框的大小是否可以随图像的大小而自动调整。 当取值为False时,图片框保持原始尺寸,不能自动改变大小来适应其中的图形,当图形比图片框大,超出的部分将被截去。 当取值为True时,图片框将根据图形大小自动调整尺寸与显示的图片匹配。
③Align属性:用于设置图片框在窗体中的显示方式,共有5个选择值: 0--None(默认值),表示无特殊显示。 1--Align Top,表示图片框停靠在窗体上端并与窗体一样宽。 2-- Align Bottom,表示图片框停靠在窗体底部并与窗体一样宽。 3-- Align Left,表示图片框停靠在窗体左端并与窗体一样高。 4-- Align Right,表示图片框停靠在窗体右端并与窗体一样高。
3. LoadPicture函数 在图片中显示的图像不仅可以由图片框的Picture属性决定,还可以在代码中通过LoadPicture函数进行设置,其格式为: 对象名. Picture= LoadPicture(“图形文件名”)
二、图像框(Image) 1. 图像框的作用 图像框控件是VB提供的另一种显示图像折控件,它支持的文件格式和图片框相同。 1. 图像框的作用 图像框控件是VB提供的另一种显示图像折控件,它支持的文件格式和图片框相同。 2. 图像框的常用属性 ①Picture属性:这个属性用于设置在图像框中要显示图像的文件名。 ② Stretch属性:这个属性用于拉伸位图和图标,使其适应图像框的大小。
当取值为False时,可以自动调整图像框大小以适应图像。 当取值为True时,可以缩放图像来适应图像框的大小。 3. 图像框和图片框的区别 图像框比图片框占用较少的内存,所以描绘速度更快。 而图片框是“容器”控件,即图片框可以包含其它控件,而图像框不是“容器”控件。 图片框可以通过Print方法接收文本,而图像框不支持这一功能。
三、画线工具(Line) 画线工具是图形控件,它可以画水平线、垂直线或者对角线。 在设计时,可以使用画线工具在窗体或图形框上绘制所需的线。画线的操作步骤如下: ①单击工具箱中的画线工具; ②移动鼠标到要画线的起始位置; ③按下鼠标左键并拖曳鼠标到要画线的结束处,放开鼠标左键。
四、形状工具(Shape) 形状工具可以用来画矩形、正方形、椭圆、圆形、圆角矩形或者圆角正方形。这些图形的几何特性取决于形状工具的Shape属性。 0—Rectangle 矩形 1—Square正方形 2—Oval椭圆 3—Circle圆 4—Rounded Rectangle 圆角矩形 5—Rounded Square 圆角正方形