第二章 VB基本控件及简单程序设计
1.了 解程序设计方法的发展;
2.理解面向对象程序设计概念;
3.理解对象、属性、事件、和方法等基本概念;
4.掌握建立简单的应用程序的方法和步骤;
5.熟悉一些基本控件和属性的设置;
6,掌握工程的管理及环境的设置;
本章要求:
2.1 程序设计方法概述
1.初期的程序设计高运行效率、少占用内存为目标
2.结构化程序设计程序的可读性、可维护性为目标程序 =算法 +数据结构 +计算机语言 +面向过程的程序设计方法
3.面向对象的程序设计降低程序的复杂性、提高软件的开法效率和改善工作界面为目标程序 =对象 +消息 +面向对象的程序设计面向对象的程序设计具有如下的优点:
1,符合人们习惯的思维方法,便于分解大型的复杂多变的问题 。 由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流 。
2,易于软件的维护和功能的增减 。 对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便 。
3,可重用性好 。 重复使用一个类 ( 类是对象的定义,
对象是类的实例化 ),可以比较方便地构造出软件系统,
加上继承的方式,极大地提高了软件开发的效率 。
4.与可视化技术相结合,改善了工作界面。 随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心。它与可视化技术相结合,使人机界面进入 GUI
时代。
2.2 VB中的一些基本概念一、对象与类
1,对象是基本的运行时的实体,如窗体、各种控件等,它既包括作用于对象的操作(方法)和对象的响应(事件)。
将数据和处理这些数据的过程封装在一起,
2,类类是一个抽象的整体概念,对象是类的实例化。
类与对象是面向对象程序设计语言的基础。
以“汽车”为例,说明类与对象的关系。
汽车是一个笼统的名称,是整体概念,我们把汽车看成一个“类”,一辆辆具体的汽车(比如你的汽车)就是这个类的实例,也就是这个类的对象。
工具箱的各种控件并不是对象,而是代表了各个不同的类 。
通过类的实例化,可以得到真正的对象 。 当在窗体上画一个控件时,就将类转换为对象,即创建了一个控件对象,也简称为控件 。
VB中的类与对象
3、对 象的建立和命名
( 1)对象的建立方法一,单击工具箱控件对象 在窗体上按住左键拖拉到所需要的大小后释放。
方法二,双击工具箱控件对象,则立即在窗体出现一个默认大小的对象框。
( 2)编辑对象先选中对象(单击对象),
放大、缩小删除对象复制对象
( 3)、对象的命名每一个对象都有有自己的名字 。每个窗体、控件对象在建立时 VB系统给出了一个默认名。用户可通过属性窗口设置(名称)来给对象命名。
命名的原则:
1)必须由字母或汉字开头、随后可以是字母、汉字、
数字、下划线(最好不用)串组成。
2)长度 <=255个字符。
本教材采用智能化命规则:
用前 3个小定字母组成前缀(指明对象的类型)和表示该对象作用的缩写字母组成。 附表 2_1
二、属 性( Property)
对象中的数据,所有对象都有自的属性。 它们是用来描述和反映对象特征的参数。例如:控件名称( Name)、标题
( Caption)、颜色( Color)、字体( FontName)等属性决定了对象展现给用户的界面具有什么样的外观及功能。
对象属性设置的方法:
方法一,在设计模式下,通过属性窗口直接设置对象的属性。
方法二,在程序的代码中通过赋值实现,其格式为:
对象,属性 =属性值例如,cmdDisp.Caption=“显示”
三、事件( Event)及事件过程( Event Procedure)
事件 —— 可被对象识别的动作。
事件过程 ——是指附在该 对象上的程序代码,是事件触发后处理的程序。事件过程的形式如下:
Sub 对象名 _事件过程名 [(参数列表) ]
….,( 事件过程代码)
End Sub
例如:
Sub cmdHide_Click()
CmdHide.Visible=False
End Sub
四、方 法( Method)
在对象上可操作的过程,是 VB系统提供的一种特殊的过程和函数 ——方法。方法是面向对象的,所以对象的方法调用一般要指明对象。
对象方法 调用形式:
[ 对象,]方法 [ 参数列表 ]
如省略对象,表示在当对象,一般指窗体。
例如:
Form1.print " VB程序设计 "
五,VB应用程序的工作方式
VB应用程序采用的是以事件驱动应用程序的工作方式。
下面是事件驱动应用程序中的典型工作方式:
1,启动应用程序,装载和显示窗体 。
2,窗体 ( 或窗体上的控件 ) 接收事件 。 事件可由用户引发 ( 例如通过键盘或鼠标操作 ),可由系统引发 ( 例如定时器事件 ),也可由代码间接引发 ( 例如当代码装载窗体时的
Load事件 ) 。
3,如果在相应的事件过程中已编写了相应的程序代码,
就执行该代码 。
4,应用程序等待下一次事件 。
2.3 窗体的常用属性、方法和事件窗体属性决定了窗体的外观与操作。窗体外观 如下图一,属性
(一)基本属性
1,Name名称属性(任何对象都具有的)
创建的对象名称,有默认的名,在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。
2,Height,width,top和 left属性单位为 twip,1 twip=1/20点 =1/1440英寸 =1/567cm
注意,这四个属性决定窗体
(或控件)的大小,在容器中的位置。如右图。
3,Caption 标题属性,决定出现在窗体的标题栏上的文本内容,也是当窗体被最小化后出现在窗体图标下的文本。
如图 2-2中窗体的 Caption属性值是,VB窗体”
4 字体 Font属性组
FontName属性是字符型,决定对象上正文的字体 ( 缺省为宋体 ) 。
FontSize属性是整型,决定对象上正文的字体大小 。
FontBold属性是逻辑型,决定对象上正文是否是粗体 。
FontItalic属性是逻辑型,决定对象上正文是否是斜体 。
FontStrikeThru属性是逻辑型,决定对象上正文是否加一删除线 。
FontUnderLine属性是逻辑型,决定对象上正文是否带下划线 。
5,Enabled属性(逻辑值)
决定控件是否可操作。
True,允许用户进行操作,并对操作出响应 (缺省值) 。
False:呈暗淡色,禁止用户进行操作。
6,Visible属性(逻辑值)
决定控件是否可见
True,运行时控件可见 (缺省值) 。
False:运行时控件隐藏,用户看不到,但控件本身是存在的。
7,BackColor属性和 ForeColor属性
BackColor属性用于返回或设置对象的背景颜色,
ForeColor属性用于返回或设置在对象里显示图片和文本的前景颜色。它们是十六进制长整型数据在程序代码中可用 Windows 运行环境的红 -绿 -蓝 (RGB)
颜色方案,使用调色板或在代码中使用 RGB 或 QBColor
函数指定标准 RGB颜色。
例如,将窗体 Form1的背景色设置为红色,则可使用下面三种情况:
Form1.BackColor = RGB(255,0,0)
Form1.BackColor = &HFF&
Form1.BackColor = vbRed
(二)窗体的其它常用属性
1,MaxButton最大化按钮和 MinButton最小化按钮:
当值为 Ture,有最大或最小化按钮,False则无。
2,Icon 控制图标属性,返回或设置窗体左上角显示或最小化时显示的图标。
注意:此属性必须在 ControlBox属性设置为 Ture才有效
3,ControlBox控制菜单框属性,设置 Ture为有,如设置为
False则无控件菜单,同时窗体也无最大化按钮和最小化按钮,
即使 MaxButton属性和 MinButton属性设置为 Ture。
4,Picture图片属性,设置窗体中要显示的图片。加载图片操作同 Icon 控制图标属性。
5,BorderStyle,边框风格,通过改变 BorderStyle 属性,
可以控制窗体如何调整大小。
0-None:无边框;
1-Fixed Single:单线边框,不可以改变窗口大小;
2-Sizable:双线边框,可以改变窗口大小;
3-Fixed Double:双线框架,不可以改变窗口大小。
4-Fixed Tool Window:窗体外观与工具条相似。有关闭按钮,
不可以改变窗口大小。
5-Sizable Tool Window:窗体外观与工具条相似。有关闭按钮,可以改变窗口大小。
6,WindowsState属性
0-Normal:正常窗口状态,有窗口边界;
1:最小化状态,以图标方式运行;
2:最大化状态,无边框,充满整个屏幕。
7,AutoRedraw属性该属性决定窗体被隐藏或被另一窗口覆盖之后重新显示,是否重新还原该窗体被隐藏或覆盖以前的画面。即是否重画如 Circle,Line,Pset和 Print等方法的输出。
当为 True时,重新还原该窗体以前的画面。
当为 False时,则不重画 AutoRedraw属性。
二、事件最常用的事件
1 Click/DblClick,单击 /双击窗体触发。
2 Load,窗体被装入时触发的事件。该事件通常用来在启动应用 程序时对属性和变量进行初始化。
3,Unload事件卸载窗体时触发该事件 。
4,Resize事件无论是因为用户交互,还是通过代码调整窗体的大小,
都会触发一个 Resize事件 。
三、常 用方法窗体常用的方法有:打印输出 Print,移动 Move,清除 Cls,显示
Show,隐藏 Hide等方法 。
方法是面向对象故使用的形式,[对象,]方法
1.Print方法形式,[对象,]Print[{Spc(n)|Tab(n)}][表达式列表 ][; |,]
作用,在对象上输出信息对象,窗体、图形框或打印机 (Pinter),省略对象在窗体上输出。
Spc(n)函数:插入 n个空格,允许重复使用。
Tab(n)函数:左端开始右移动 n列,允许重复使用。; (分号 ),光标定位上一个显示的字符后。
,(逗号 ),光标定位在下一个打印区的开始位置处。每个打印区占 14列。
无;,换行。
开始打印的位置是由对象的 CurrentX和 CurrentX属性决定,缺省为打印对象的左上角 0,0。
例 2.3 在窗体 Form1的单击事件中写入如下代码:
Private Sub Form_Click()
a = 10,b = 3.14,c = 100
Print "a="; a,"b="; b
Print "a="; a,"b="; b
Print "a="; a,"b="; b
Print ‘ 空一行
Print ; "a="; a,"b="; b
Print "a="; a,Tab(18); "b="; b
Print "a="; a,Spc(18); "b="; b
Print
Print "a="; a,"b="; b
Print Tab(18);,a=”; a,“b=”; b ‘ 从第 18列开始打印输出
Print Spc(18); "a="; a,"b="; b
End Sub
2,Cls方法形式,[对象,]Cls
作用,清除运行时在窗体或图形框中显示的文本或图形。
注意,不清除在设计时的文本和图形。清屏后坐标当前回到原点。
3,Move方法形式,[对象,]Move 左边距离 [,上边距离 [,宽度 [,高度 ]]]
作用,移动窗体或控件,并可改变其大小。
对象,可以是窗体及除时钟、菜单外的所有控件,省略代表窗体。
左边距离,上边距离,宽度,高度:数值表达式,以 twip为单位。如果是窗体对象,则“左边距”和“上边距”是以屏幕左边界和上边界为准。其它则是以窗体的左边和上边界为准。
例 2.4 使用 Move方法移动一个窗体 。 双击窗体,窗体移动并定位在屏幕的左上角,同时窗体的长宽也缩小一倍 。
为了实现这一功能,可以在窗体 Forml的,代码,窗口中输入下列代码:
Private Sub Form_DblClick()
Form1.Move 0,0,Form1.Width/2,Form1.Height/2
End Sub
4,Show(显示 )方法
Show方法用于在屏幕上显示一个窗体,调用 Show 方法与设置窗体 Visible 属性为 True 具有相同的效果 。
其调用格式如下:
窗体名,Show [vbModal | vbModeless]
说明 ( 1 ) 它 有 两 种 可 能 值,vbModal ( 缺省 ) 或
vbModeless,Show方法的可选参数表示从当前窗口或对话框切换到其他窗口或对话框之前用户必须采取的动作 。 当参数为 vbModal时,要求用户必须对当前的窗口或对话框做出响应,才能切换到其他窗口 。 ( 2) 如果要显示的窗体事先未装入,该方法会自动装入该窗体再显示 。
5,Hide(隐藏 )方法
Hide方法用于使指定的窗体不显示,但不从内存中删除窗体 。
其调用格式为:
窗体名,Hide
例 2.5 实现将指定的窗体在屏幕上进行显示或隐藏的切换 。
为了实现这一功能,可以在窗体 Forml的,代码,窗口中输入下列代码:
Private Sub Form_Click()
Form1.Hide ' 隐藏窗体
MsgBox "单击确定按钮,使窗体重现屏幕 " ' 显示信息
Forml.Show ' 重现窗体
End Sub
说明,当一个窗体从屏幕上隐去时,其 Visible属性被设置成 False,并且该窗体上的控件也变得不可访问,但对运行程序间的数据引用无影响 。 若要隐去的窗体没有装入,
则 Hide方法会装入该窗体但不显示 。
一,命令按钮 CommandButton
接受用户输入的命令,输入命令可以有三种方式,
( 1)鼠标单击;
( 2)按 Tab键焦点跳转到该按钮,再按回车键;
( 3) 快捷键( Alt+有下划线的字母 )
(一)属性
1.基本属性
Name,Height,Width,Top,Left,Enabled,Visible、
Font等与窗体的使用相同。
2.常用属性
( 1) Caption,标题属性 ——命令按钮显示的内容,可在某字母前加,&“设置快捷键。例如,&Ok,显示 Ok
2.4 命令按钮、标签、文本框
( 2) Default,确认属性(逻辑值),设置为 True时,按
Enter键相当于用鼠标器单击了该按钮。
注意:在一个窗体只能的一个按钮的 Default设置为 Ture
( 3) Cancel:取消功能属性(逻辑值),当设置为 Ture时,程序运行时按 Esc键与单击此命令按钮的效果相同。
注意:在一个窗体只能的一个按钮的 Cancel属性 设置为
Ture
( 4) Value,检查该按钮是否按下,该属性在设计时无效,
( 5) Picture,按钮可显示图片文件 (.bmp和,Ico),只有当 Style
属性值设 为 1时有效
( 6) Style,确定显示的形式,0 只能显示文字,1 文字、图形均可 。
( 7) ToolTipText,设置工具提示,和 Picture结合使用。
(二),事件单击事件 Click
二,标签 Label
用于显示文本 (输出 )信息,不能作为输入信息的界面。
1,基本属性
Name,Height,Width,Top,Left,Enabled,Visible、
Font,ForeColor,BackColor等与窗体的使用相同 。
2,常用属性
( 1) Caption属性
Caption属性用来改变 Label控件中显示的文本 。 Caption属性允许文本的长度最多为 1024字节 。 缺省情况下,当文本超过控件宽度时,文本会自动换行,而当文本超过控件高度时,超出部分将被裁剪掉 。
( 2) Alignment属性设置 Caption属性中文本的对齐方式,共有三种可选值:
0 左对齐 (Left Justify); 1 右对齐 (Right Justify);
2 居中对齐 (CenterJustify)。
( 3) BackStyle属性该属性用于确定标签的背景是否透明 。 有两种情况可选:
值为 0时,表示背景透明,标签后的背景和图形可见;值为
1时,表示不透明,标签后的背景和图形不可见 。
( 4) AutoSize属性
AutoSize属性确定标签是否会随标题内容的多少自动变化 。 如果值为 True,则随 Caption内容的大小自动调整控件本身的大小,且不换行;如果值为 False,表示标签的尺寸不能自动调整,超出尺寸范围的内容不予显示 。
例 2.6 在窗体上,放置 5个标签,其名称使用默认值 Label1
- Label5,它们的高度与宽度相同,在属性窗口,按下表设置它们的属性默认控件名
Name
标题
Caption
有关属性设置
Label1 左对齐 Alignment=0,BorderStyle =1
Label2 水平居中 Alignment=1,BorderStyle =1
Label3 自动 AutoSize=True,WordWarp=False,
BorderStyle =1
Label4 背景白 BackColor= &H00FFFFFF&,BorderStyle =0
Label5 前景红 ForeColor= &H000000FF&,BorderStyle =0
( 5) WordWrap属性设置后各标签的显示如下图
3、事件标签可响应单击( Click)和双击( DblClick)事件,但一般情况不对它进行编程三,文本框 TextBox
是一个文本编辑区域,可在该区域输入,编辑和显示正文内容。
(一) 属性
1,基本属性
Name,Height,Width,Top,Left,Enabled,Visible,Font,
ForeColor,BackColor等与标签控件相同 。
2,常用属性
( 1),Text文本 属性在文本框中显示的正文内容存放在 Text属性中。当程序运行时,用户通过键盘输入正文内容,保存在 Text属性中。
文本框没有 Caption属性
( 2) Maxlength,设置正文的最多字符个数,0任意长度值 。
( 3) MultiLine,是否为多行,默认一行,False
( 4) ScrollBars,当 MultiLine为 True时,该属性才有效,滚动条的形式。 0-None:无滚动条,1-Horizontal:水平滚动条、
2-Vertical垂直滚动条,3-Both水平和垂直滚动条。
( 5) Locked,是否可被编辑属性,False,表示为可编辑。
( 6) PassWordChar属性设置 PasswordChar属性为了掩盖文本框中输入的字符。
该属性的设置只有在 MultiLine设为 False才有效
( 7) SelStart,SelLength和 SelText属性这三个属性是文本框中对文本的编辑属性 。
SelStart:确定在文本框选中文本的起始位置 。 第一字符 的位置为 0。 若没有选择文本,则用于返回或设置文本的插入点位置,如果 SelStart的值大于文本的长度,则 SelStart
取当前文本的长度:
SelLength:设置或返回文本框中选定的文本字符串长度(字符个数)。
SelText:设置或返回当前选定文本中的文本字符串。
(二)常用事件
Change,
当改变文本框的 Text属性时会引发该事件。当用输入一个字符,就会触发一次 Change事件。
KeyPress(KeyAscii As Integer):
当用户按下并释放键盘上一个 ANSI键时,就会触发一次该事件,并返回一个 KeyAscii参数(字符的 Ascii值)到该事件过程中。
例如:输入,A”,则 KeyAscii的值是 65。可用函数
Chr$(KeyAscii)
可得到字符,A”。
LostFocus,当控件失去焦点时发生。
GotFocus,当控件获得焦点时发生。
(三) 常用方法文本框最有用的方法是,SetFocus,使用形式:
[对象,]SetFocus
功能,是把光标移到指定的文本框对象中。
例题:
2.5 简单应用程序的建立一,工程的组成工程文件 (.Vbp)包含了一个应用程序的所有文件
(详见 Pg.42表 1.2.10)
窗体文件(,frm),控件及属性、事件过程和自定义过程窗体的二进制数据文件(,frx),自动产生同名,.frx文件。
标准模块文件(,bas)
类模块的文件(,cls)
资源文件(,res)
ActiveX控件的文件(,ocx)
一个 VB应用程序中各主要文件的结构关系如下图:
二,创建应用程序的步骤,
分析问题,确定程序要完成什么任务,按下面的步骤创建应用程序。
( 1)新建工程。创建一个应用程序首先要打开一个新的工程。
( 2) 创建应用程序界面 。
( 3) 设置属性值 。
( 4) 对象事件过程的编程 。
( 5) 保存文件 。
( 6)程序运行与调试。再次保存修改后的程序三、一个简单的 VB程序的创建 (实例)
例 2.7 设计一简单应用程序,在窗体上放置 1个文本框,
2个命令按钮,用户界面如图 2-9所示 。