1、2022-8-91Visual Basic 程序设计2022-8-92第二讲VB可视化编程初步 2022-8-93内容简介本章以一个简单的时钟应用程序开发为主线:详细介绍窗体、文本框、标签和命令按钮等常用控件详细介绍窗体、文本框、标签和命令按钮等常用控件事件和事件过程以及事件驱动程序设计的基本原理事件和事件过程以及事件驱动程序设计的基本原理MsgBox函数、赋值语句的使用方法。函数、赋值语句的使用方法。通过本章的学习,你将熟悉Visual Basic开发应用程序的全过程,领略到VB可视化编程的魅力,为进一步深入学习奠定基础。2022-8-94学习目标 掌握VB应用程序开发的一般步骤。掌握命令按
2、钮、文本框和标签的使用和MsgBox函数的用法。理解赋值语句、变量的概念,理解对象、属性、方法和事件的概念及其之间的区别和联系,理解事件驱动的原理。了解时钟程序的工作原理。2022-8-952.1“时钟程序”任务 在实际工作中,为了准确的控制时间,经常需在实际工作中,为了准确的控制时间,经常需要用到计时器,现在我们就来创建一个倒计时要用到计时器,现在我们就来创建一个倒计时的简单应用程序。的简单应用程序。该程序的功能是:当在文本框内输入倒计时的该程序的功能是:当在文本框内输入倒计时的分钟数后,单击分钟数后,单击“开始开始”按钮就开始倒计时,倒按钮就开始倒计时,倒计时结束时,弹出计时结束时,弹出“
3、时间到!时间到!”的信息框。的信息框。2022-8-96任务描述界面设计代码设计保存和运行程序编译与打包安装运行VB应用程序开发的一般步骤时钟程序任务时钟程序任务任务描述程序运行:出现输入分钟数 时间到:出现 2022-8-972.1.1任务描述 启动界面 2022-8-98输入1分钟数字界面 2022-8-99倒计时进行中界面 2022-8-910倒计时结束界面 2022-8-911212 界面的设计 1 新建工程并创建窗体启动VB 在“新建工程“对话框中,选择“标准EXE”单击“打开”。2 向窗体中添加控件 调整窗体的大小为合适,向窗体中添加:一个标签、一个文本框、一个命令按钮和一个计时器
4、控件。2022-8-912 通过鼠标单击“工具箱”中的控件,在窗体上划出相应的控件。2022-8-9133 设置对象属性设置对象属性(1)单击Form1窗体,选定它。在属性窗口中选中Form1,将Caption 的属性改为“倒计时器”(2)单击窗体上的“Label1”控件,将Caption的属性改为清输入倒计时的分钟数,将Autosize属性改为true(3)将命令按钮command1的Caption属性改为“开始“。(4)将text1 的Alignment属性改为“2-center”.(5)将计时器控件timer的Interval的属性值设为1000(1秒),Enabled属性设为False
5、.2022-8-9142.1.3代码设计代码设计(1)代码编辑器“通用”区代码Dim m As Long 声明一个变量(2)Command1控件代码Private Sub Command1_Click()使计时器控件开始工作Timer1.Enabled=True 将分钟数转换为秒数,并保存在m变量中m=Val(Text1.Text)*60 改变标签控件的标题Label1.Caption=现在开始倒计时 使用命令按钮不可见Command1.Visible=False End Sub2022-8-9152.1.3代码设计代码设计(3)Timer1控件代码Private Sub Timer1_Tim
6、er()当Timer1.Enabled=Ture是,本程序每秒自动执行一次 每运行一次,就将m变量的值减1秒m=m 1 If m 0 Then 如果倒计时结束(即m=0)则:Timer1.Enabled=False 关闭计时器MsgBox 时间到!,0,倒计时Label1.Caption=请输入计时的分钟数Text1.Text=清空文本框Command1.Visible=True 使命令按钮可见Else 否则显示倒计时数Text1.Text=mEnd IfEnd Sub 2022-8-9162.1.4保存和运行程序保存和运行程序 1保存工程 单击“文件”菜单中的“保存工程”2运行程序 单击工具
7、栏中的启动按钮,或者按F5键开始运行该应用程序。2022-8-9172.1.5编译与打包编译与打包 1编译应用程序 单击“文件”菜单中的“生成Timer.exe”选项 2打包 创建一个安装程序来发布文件 Package&Deployment向导 2022-8-9182.1.6 VB应用程序开发的一般步骤 1设计应用程序界面2设置对象属性3编写代码4保存和运行工程5编译与打包6安装运行 2022-8-9192.2 程序代码分析2.2.1 变量 是指在程序运行过程中其值可以改变的那些量。当执行了Dim语句后,VB程序就会在计算机内存中预留一个区域,准备存放数据。变量命名规则:第一个字符必须是字母
8、其它字符只能是字母、数字、下划线 最后一个字符可以是类型说明符 变量名最长可达255个字符 不能与保留字重名,如Input 尽量使用有意义的名字2022-8-920声明变量隐式声明:变量不经声明直接使用,此时该变量将被赋予缺省的类型和值如:class=3 class为整型 name=张三 name为字符串显式声明:变量声明后再使用 强制显式声明 工具/选项/编辑器/要求变量声明 代码编辑器/对象列表中选通用,在声明区加入声明option explicit2022-8-921使用Dim语句声明变量一般格式:Dim 变量名 As 变量类型例:Dim num As Integer 声明num为整型变
9、量Dim test As long,today As Date 同时声明test为长整型,today为日期型Dim str As string,value 声明str为一变长字符串,value为不定类型2022-8-922全局变量的声明 全局变量是可以在工程中的所有程序模块使用的变量。使用关键字Public和Global 如:Public test1 As Integer Global test2 As Byte2022-8-923表表 VB的标准数据类型的标准数据类型数据类型类型名称类型声明字符所占字节字节型Byte10255布尔型Boolean2整型Interger%2长整型Long&4单
10、精度型Single!4双精度型Double#8货币型Currency8日期型Date8对象型Object4变长字符串型String$字符串长度,1字节/字符定长字符串型String*Num$Num可变类型Variant不定2022-8-9242.2.2赋值语句赋值语句格式:变量名=表达式或 对象名.属性名=表达式注意:1、不要把赋值号“=”与数学中的等号相混淆 m=m-12、赋值号“=”左边必须是变量名或对象属性,“=”右边是表达式,其值可以是常量、变量、函数或是它们的混合运算式 m=val(text1.text)*60 z=x+y b=1 c=b*2+2 label1.caption=“现在
11、开始倒计时”2022-8-925MsgBox函数的格式:变量=msgbox(提示信息,对话框类型,对话框标题)MsgBox命令语句的格式:msgbox 提示信息,对话框类型,对话框标题 MsgBox函数各参数使用与MsgBox语句函数相同,但是MsgBox语句没有返回值。2022-8-926参数说明:(1)“提示信息”指定在对话框中出现的文本。(2)“对话框标题”指定了对话框的标题。(3)“对话框类型”是可选项,用来指定对话框中出现的按钮和图标,见(p32表2.1、表2.2、表2.3),该参数的值有三类数值相加产生,这三类数值分别表示按钮的类型、显示图标的种类和默认按钮的位置。msgbox “
12、时间到!”,0,”倒计时”(4)函数返回值 见p32表2.42022-8-927 Private Sub Form_Click()msgtitle$=考生登录信息提示 msg1$=准考证号输入有误,请重新输入正确的号码!w=MsgBox(msg1$,37,msgtitle$)Print wEnd Sub2022-8-928例如:执行下列语句 private sub command1_click()msgbox(“除数不能为0!”,vbokcancel,”输入数据错误”)end subP33例如:执行下列语句 private sub command1_click()a=msgbox(“密码不正确
13、”,2+32+0,”标题”)if a=3 then end 如果选择了“终止”按钮则程序结束 end if end subP332022-8-929例如:执行下列语句 private sub command1_click()msgbox “密码不正确,”+chr(13)+”请重新输入!”end subP332022-8-9302.3 窗体及基本控件 2.3.1 对象的概念、属性、事件及方法 1 对象的概念简单的说,对象就是代码和数据的封装体。VB中,我们将窗体、标签、文本框、命令按钮和时钟控件等都可以理解为对象。2 属性属性是一个对象的基本特征,每一个对象都有自己的属性。常见的对象的属性有标题
14、(Caption)、名称(mane)、颜色(color)、字体(font)、是否可见(Visible)等。2022-8-931各属性通常都有默认值,如果不改变采用默认值。(1)在设计阶段,通过属性窗口来改变各属性值。(2)在程序代码中,使用赋值语句设置对象的属性 格式:对象名.属性名=属性值 例如:Label1.Caption=”现在开始倒计时”2022-8-9323 方法一般说,方法就是要执行的动作,可理解为VB提供的一种特殊的过程和函数,已将一些通用的函数和过程编写好并封装起来,如:打印(print)、显示窗体(show)、清除(cls)和移动(move)等调用对象的方法格式为:对象名.方
15、法名例如:form1.print“你好!”4 事件事件就是在对象上发生的事情,在VB中,系统是预先为每个对象定义好了一系列事件.例如:单击事件(click)、双机事件(dblclick)、装入事件(load)、改变事件(change)和鼠标移动事件(mousemove)等.鼠标单击(事件)命令按钮(对象)调用打印(方法)2022-8-9332.3.2窗体(窗体(Form)窗体的结构2022-8-934232 窗体 窗体(Form)是用户界面最基本的构造模块,也是创建应用程序所使用的主要对象之一。窗体有自己的属性、事件和方法,以便控制窗体的外观和行为。窗体又是其他对象 的载体和容器,几乎所有的控
16、件都是在窗体上的。窗体运行以后,就是应用程序的窗口。2022-8-9351 窗体的基本属性 设置窗体的属性有两种方法,一种使用属性窗口,另一种是在代码编辑器中使用代码命令。常见的窗体属性有以下几种:(1)Name属性 用于设置窗体名称,默认名称为Form1,Name属性只能在属性窗口中设置。(2)Caption 属性 用于设置显示在标题栏上的窗体的标题,在属性窗口和代码编辑器均可设置。其默认值同窗口名称相同。如:窗体名称.Caption=”标题”2022-8-936(3)MaxButton和MinButton属性各有两个属性True和False,分别表示标题栏上是否有最大化和最小化按钮.(4)
17、BorderStyle边框样式属性 表2.5所示(5)Picture属性 设 置 窗 体 上 要 显 示 的 图 片,可 以 用 语 句:对象.picture=loadpicture(“文件名”)(6)Icon属性 用于设置窗体标题栏上的图标.(7)visible 属性 用于设置窗体是否可见.(8)WindowsState属性 用来设置窗体运行时窗体的显示状态0-Normal,1-Minimized,2-Maximized2022-8-937 2 窗体的常用方法窗体的常用方法 (1)show 方法用于快速先是一窗体,与窗体的visible属性设置位为true一样.Form1.showForm1
18、.visible=true(2)Hide 方法其功能是隐藏窗体,与窗体的visible属性设置位为false 一样Form1.HideForm1.visible=false(3)print 方法 用于在窗体或图片框上输出文本private sub form_load()dbug.print“print 方法可以在窗体上打印文本”end sub.2022-8-938(4)cls 方法 用于清除运行时在窗体和图片框中显示的文本和图片.picture.cls 清除图片框中的图片cls 清除窗体上的文本(5)move 方法 将窗体已到指定位置,如:form1.move(0,0)将窗体一到左上角。202
19、2-8-9393 窗体的常用事件窗体的常用事件 窗体的常用事件有(通过代码编辑器)(1)click 单击事件 单击窗体是发生(2)DblClick 事件 双击窗体是发生。(3)load 事件装在窗体是发生。(4)Unload事件当单击窗体上的”关闭”和或使用Unload语句时触发该事件.(5)Activate 和 DeActivate事件 当一个窗体变成活动窗体时,就会触发Activate事件.当窗体不再是活动窗体时就会触发DeActivate事件2022-8-9404 窗体事件演示程序 事例:设计一窗体,是标题栏上无最大化和最小化按钮;运行后将窗体的颜色设置为黄色;单机窗体时窗体变宽;双击窗
20、体时退出.2022-8-9412.3.3 命令按钮命令按钮 其主要功能是通过命令按钮来调用Click 事件过程。控制开始、中断、结束一个进程。1、常用属性 Enabled:允许程序在运行时使窗体和控件成为有效或无效 object.Enable=boolean Visible:允许在程序运行时隐藏一个对象 object.Visible=boolean Style:设置按钮外观。0为标准Windows风格,1为允许带有自定义图片 Picture:Style为1时,指定粘贴到按钮上的图形文件 Default:属性为True时,指定为窗体缺省按钮 Cancel:属性为True时,指定为窗体缺省取消按钮
21、 2022-8-942例如:Option ExplicitPrivate Sub Form_Load()Text1.Text=Command1.Caption=saveEnd SubPrivate Sub Text1_Change()If Text1.Text=Then Command1.Enabled=False Else Command1.Enabled=True End IfEnd Sub2022-8-9432、常用方法 SetFocus方法 3、常用事件 Click(单击)Click事件,以下情况可发生Clicl事件:(1)在按钮上单击鼠标。(2)焦点在按钮上,按空格键或回车键。(3)
22、在代码中将按钮Value属性设置为True (4)对于取消按钮按Esc键 (5)在Caption属性中用&符号链接一访问键,在运行时按Ali+访问键。2022-8-944234 标签 标签现实不能编辑的信息。1 常用属性 (1)AutoSize 当值为true 时自动调节内容大小以适应其内容。当值为false时,不能改变大小。(2)Alignment 属性 标签内文本的对齐方式,标2.7所示 (3)BordeStyle 属性 标签的边框,默认值为0,无边框。属性设为1 右边框。2022-8-945(4)Backstyle 属性 用来设置标签是否透明,0透明,1不透明,默认值为1。(5)word
23、wrap属性 用来设置标签中的内容是否能够显示多行。缺省为false,设为true 可显示多行。2 常用方法 常用方法有move方法实现控件的移动。2022-8-946用标签来显示时间Label1.Caption=Time在标签中同时显示两行以上的字符串Label1.Caption=Time&Chr(13)&Chr(10)&Date2022-8-9472.3.5文本框(文本框(Textbox)1常用属性 (1)Text属性 (2)MultiLine属性 MultiLine属性为TrueMultiLine属性为False2022-8-9482.3.5文本框(Textbox)1常用属性 (3)Pa
24、ssWordChar (a)(b)2022-8-949235 文本框 文本框控件一般用于接收用户输入信息,用户可以在文本框中编辑信息。1 常用属性(1)text 属性用来设置文本框中的内容。(2)MultiLine 属性MultiLine 属性用来决定文本框是否可输入多行文本。默认为false,设为true 可输入多行。(3)PasswordChar 属性用于密码输入,设置为*,显示为*。2022-8-950(4)ScrollBars 属性用于设置文本框是否有滚动条 如表2。8只有当MultiLine 属性为true 时滚动条才有效。(5)locked 属性用于设置文本框的内容是否可以编辑,默
25、认值为false 表示可编辑,值为true 表示锁定。2022-8-9512 常用方法常用的方法为Setfocus 设置焦点,将光标从其它位置移到文本框中。3 常用事件(1)Chang事件,改变文本框中内容改变时发生的事件(2)KeyPress 事件,当用户按下并且释放键盘上的一个键时,发生KeyPress 事件。该事件将返回一个KeyAscii 参数值.(3)LostFocus 和GotFocus 事件:表示文本框控件shiqu和得到焦点是所发生的事件。2022-8-95224 事件驱动事件驱动 241 事件驱动的程序设计事件驱动的应用程序,程序的执行发生了根本的变化,代码不是按预定的路线执
26、行,而是在响应不同的事件时执行不同的代码片断。每个对象都有一个相应的事件集每个事件的发生都要执行一段程序代码,时间可以由用户操作触发,也可以有操作系统或其他应用程序的消息触发,甚至可以由应用程序本身的消息触发。2022-8-953242 VB的对象如何识别事件的对象如何识别事件 代码部分与每个事件相对应,如果让控件对象响应事件,就把代码写入这个事件的事件过程中.2.4.3 事件驱动的工作过程事件驱动的工作过程 事件驱动的工作过程(1)启动应用程序,装载和显示函数。(2)窗体和窗体上的控件等待时间的发生。事件可以由用户引发,可由系统引发,也可由代码间接引发。(3)当某个事件发生后,执行其对应的事
27、件过程代码。(4)重复执行第2和第3步,直到结束。2022-8-954五、计时器控件的一般用法五、计时器控件的一般用法 如果想通过事件来控制某些操作或用于计时,就可以用计时器(Timer)控件来实现。计时器控件在设计时可见,而在运行时则隐藏起来,但在后台每隔一定的时间间隔就执行一次Timer事件。(一)常用属性 1、Interval属性 返回或设置对Timer控件的计时事件各调用间的毫秒数 语法:object.Interval=milliseconds milliseconds:0使Timer控件无效;165535可设置的时间间隔范围 2、Enable属性:用来决定计时器控件是否能够响应计时事
28、件。相当于启动或关闭计时器的开关。2022-8-955(二)Timer事件 Timer事件 是计时器的唯一事件。在一个Timer预定时间间隔过去之后发生,用以告诉VB在每个Interval到时该做什么。语法:Private Sub object_Timer(index As Integer)程序代码 End Sub2022-8-956本章习题一、单项选择题一、单项选择题1.在 Visual Basic的集成开发环境中创建Visual Basic应用程序时,除了工具箱窗口、窗体设计窗口、属性窗口外,必不可少的窗口是()。A窗体布局窗口 B立即窗口C代码窗口 D监视窗口2应用程序打包后,其包文件的
29、后缀为()。A.exe B.cabC.txt D.ocx3当运行程序时,系统自动执行启动窗体的()事件过程。ALoad BClickCUnload DGotFocus2022-8-9574.下列赋值语句正确的是()AA=B+C BB+C=AC-B=A D2=A+B5时钟控件响应的事件是()ATimer BIntervalCClick DEnable6工程文件的后缀是()A.bmp B.vbp C.frm D.bas 2022-8-958作业1时间换算程序。设计一个时间换算程序,要求输入小时数、分钟数和秒数后,单击计算按纽输出共计秒数。程序运行界面如图1所示。图1 程序运行界面2022-8-9592除法计算程序,编写求两个数相除的程序,若除数为零,用消息对话框提示重新输入。程序运行界面如下图2所示。图2.程序运行界面2022-8-9603角度转换程序。设计一程序,要求在文本框中输入角的弧度值,按“转换为角度”按纽,文本框中角的弧度值转换为角度值,程序运行界面如图3所示。图3 角度转换程序运行界面2022-8-961 本讲结束!