程序设计基础-Visual Basic(2019秋)

沈阳师范大学 刘立群

目录

  • 认识 Visual Basic
    • ● 认识 Visual Basic
    • ● 对象的属性、事件和方法
    • ● 控件的容器-窗体
    • ● 文本编辑工具-文本框
    • ● 命令按钮和标签
  • 程序设计基础
    • ● 语句和语法规则
    • ● 数据类型和常量变量
    • ● 运算符与表达式
    • ● 常用内部函数
    • ● 输入与输出
  • 基本控制结构和算法
    • ● 程序结构与算法
    • ● 选择结构的语句实现
    • ● 循环结构的语句实现
    • ● 穷举和递推问题求解
    • ● 嵌套循环解百钱百鸡问题
    • ● 星形矩阵的显示问题
  • 常用标准控件
    • ● 选择控件和滚动条--设置文字格式
    • ● 列表框及组合框—购票系统
    • ● 计时器与图片控件—自动变换的交通灯
    • ● 图形操作—小球运动
  • 数组和过程
    • ● 数组的定义与一维数组的应用
    • ● 二维数组
    • ● 控件数组
    • ● 自定义过程
    • ● 参数传递
    • ● 变量的作用域
  • 键盘鼠标事件与菜单设计
    • ● 鼠标键盘事件--小鸡吃虫游戏
    • ● 菜单程序设计--控制移动字幕
  • 通用对话框与文件操作
    • ● 通用对话框与文件操作
    • ● 文件操作--打开保存数据实例
计时器与图片控件—自动变换的交通灯


一、计时器

计时器(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