admin 管理员组

文章数量: 887021


2024年1月23日发(作者:html 表格行高)

第一章Visual Basic 6.0

概述

么是Visual Basic? 1.1

Visual Basic是微软(Microsoft)公司推出的、专门用于开发基于Windows应用程序的工具语言,在数据库、分布式处理、Internet及多媒体等方面有着广泛的应用。它由在计算机技术发展历史上应用最为广泛的Basic发展而来,如今已是一种可视化的、面向对象的程序设计语言。

好,下面我们一起去看看。

1.1.1概念术语:

对象:是面向对象程序设计的核心,是对现实世界中对象的模型化,是代码和数据的组合,具有自己的状态和行为,如某个同学。

学好VB的诀窍之一是要以“对象”的眼光去看待整个程序设计。

属性:对象中的数据,用来表示对象的状态,决定对象的外观。

方法:对象中的代码,决定对象可以进行的动作。

类:

用来创建对象的样板,包含所创建对象的状态描述和方法定义,对象是类的一个实例,如球和排球的关系。

事件:来自外部的刺激,能被对象所识别的动作,如鼠标单击。事件决定了对象之间联系的手段。

事件过程:对象对事件作出的反应。

事件驱动:在程序中流动的是事件,只有在事件发生时,程序才会运行。

在VB程序设计中,基本的设计机制就是改变对象的属性,使用对象的方法和为对象事件编写事件过程。

窗体:是创建应用程序界面的基础,相当于一块画布,应用程序界面会全部在此画出,是运行应用程序时,与用户交互操作的实际窗口。

控件:组成用户界面的基本构件,如标签、命令按钮等。每个控件按钮可以看作是一个类,单击按钮在窗体上画下,即为由相应的类创建的对象。

从以上几个概念,我们可以感觉到:用VB编程,即先用面向对象的方法去分析所要解决的问题-----建模-----画界面-----编写代码-----调试运行。

1.1.2 VB的版本

VB由1991年微软公司首次推出1.0版本,经历七、八年的时间,目前最新的版本是VB6.0,我们主要介绍VB6.0中文版。

VB6.0包括三个版本:

:基础版本,包括所有的内部控件以及网格、选项

学习版(Learning)卡和数据绑定控件。

专业版(Professional):针对计算机专业开发人员,是一整套功能完备的开发工具。该版本包括学习版的全部功能以及ActiveX控件、Internet Information Server Application

Designer、集成的Visual Database Tools 和 Data

Environment、Active Data Objects和Dynamic HTML

Page Designer。

企业版(Enteprise): VB6.0的最高版本,企业版使得专业编程人员能够开发功能强大的组内分布式应用程序。该版本包括专业版的全部功能以及 Back Office 工具,例如 SQL

Server、Microsoft Transaction Server、Internet

Information Server、Visual SourceSafe、SNA Server等。

,主要介绍VB程序设计

我们使用的是VB6.0的企业版(中文版)的基本概念、开发环境、基本数据结构,使大家具有用VB解决基本应用问题的能力。

安装与启动 1.2 VB的1.2.1 VB6.0的运行环境

一、 硬件:

CPU:Pentium(R) 90MHz 或更高的微处理器,最低为Intel80486/DX66。

Windows 支持的更高分辨率的屏幕。

显示器:VGA 640x480 或 Microsoft

NT平台,需32MB。

内存:Windows 95平台,需24MB RAM ,对于 Windows

硬盘空间:

学习版: 典型安装 48MB,完全安装 80MB。

专业版: 典型安装 48MB,完全安装 80MB。

企业版:典型安装 128MB,完全安装 147MB。

附加部件(如果需要的话): MSDN (用于文档): 67MB。

Internet Explorer 4.x: 大约 66MB。

CD-ROM

二、支撑软件:

oft Windows NT 3.51 或更新的版本。

2. Microsoft Windows 98 或更新的版本,最低Windows95。

oft Internet Explorer 4.01或更新的版本(4.01版的Service Pack1或对 DHTML应用程序开发者的更高版本,以及对这些应用程序的最终用户的 4.x 版本)。

1.2.2 VB的安装

一、 安装步骤:

1. 将VB6.0光盘放入光驱中

2. 在安装画面菜单上单击安装

3. 跟随安装向导进行安装

(具体见教材P8)

二、 添加或删除VB组件:

1. 将VB6.0光盘放入光驱中

2. 单击“开始”按钮-----设置-----控制面板-----添加/删除程序

3. 选定“VB6”选项,单击“添加/删除”按钮

4. 选“添加/删除”、“重新安装”或“全部删除”

1.2.3 VB6.0的启动与退出

一、 启动:

1.“开始”按钮----“程序”----“Microsoft Visual Basic6.0中文版”

图1.1 进入VB6.0窗口

2.选“新建”选项卡

新建:建立新的工程

现存:选择和打开现有的工程

最新:最近使用过的工程

3.单击“标准EXE”项,再单击“打开”按钮

图1.2 VB6.0应用程序集成开发环境

实践一下

二、 退出:

在菜单文件(F)项中选“退出”或单击“关闭”按钮

集成开发环境 1.3 VB6.0的

如果把VB的编程方法和思想比作精深的武功,那么VB6的集成开发环境就是一把锐利无比的宝剑,只有熟练地将二者结合在一起,才能将VB巨大的潜力发挥到极点,笑傲Windows“江湖”。

VB6.0的集成环境由以下九部分组成:

主窗口、工具箱、窗体窗口、属性窗口、代码窗口、工程资源管理窗口、

布局窗口、对象浏览窗口、立即本地和监视窗口

1.3.1主窗口:由标题栏、菜单栏、工具栏和工作桌面组成。

图1.3 主窗口

1.标题栏:包含控制菜单、工作模式、最大化、最小化和关闭按钮

工作模式:设计模式(Design):可进行用户界面的设计和代码的编制

运行模式(Run):正在运行应用程序

中断模式(Break):程序被暂时中断,可进行代码的编辑

2.菜单栏:包含13个下拉菜单(具体参见教材P11)

3.工具栏:常用菜单命令的快捷方式

1.3.2工具箱(Tool Box)

提供一组工具,用于设计时在窗体中放置控件。通常工具箱中有20个标准控件,还可添加,方法为:工程-----部件。

图1.4 工具箱窗口

1.3.3窗体窗口

窗体设计器是应用程序界面的载体,一个VB的应用程序至少有一个窗体窗口。

图1.5 窗体窗口

窗体的网格点可帮助用户对安装的控件准确定位,间距可通过:

工具---选项---通用---窗体网格来设置。

VB一般有两种窗体:SDI(单文档界面)其所有窗口可在屏幕上任何地方自由移动。

如:记事本。

MDI(多文档界面)所有窗口包含在一个大小可调的父窗口。

如:Word中可打开多个文档

1.3.4属性窗口:设置对象的属性

1. 对象列表框

2. 属性排列方式

3. 属性列表框

4. 属性解释栏

图1.6 属性窗口

1.3.5代码窗口:专门用来进行程序设计的窗口

1.对象列表框

2.过程列表框

3.代码框

图1.7代码窗口

1.3.6工程资源管理器窗口:

工程是指用于创建一个应用程序的文件的集合,*.vbp。

工程中包含三类文件:

窗体文件(. FRM):该文件储存窗体上使用的所有控件对象 、对象的属性、

对象相应的事件过程及程序代码。一个应用程序至少包含一个窗体文件。

标准模块文件(. BAS):所有模块级变量和用户自定义的通用过程都可产生这样的文件。一个通用过程是指可以被应用程序各处调用的过程。

类模块文件(. CLS):可以用类模块来建立用户自己的对象。类模块包含用户对象的属性及方法,但不包含事件代码。

窗体中有三个按钮:

“查看代码”按钮:切换到代码窗口, 显示和编辑代码。

“查看对象”按钮:切换到模块的对象窗口。

“切换文件夹”按钮:切换工程中的文件是否按类型显示,若按类型显示,则以树形的结构、文件夹的方式显示。

图1.8 工程资源管理器窗口

1.3.7窗体布局窗口:用于指定程序运行时的初始位置

图1.9布局窗口

1.3.8对象浏览器窗 可查看在工程中定义口:

的模块或过程,也可以查看对象库、类型库、类、方法、书信、事件及可在过程中使用的常数。

图1.10对象浏览器窗口

1.3.9立即、本地和监视窗口:

为调试应用程序提供的,只在运行应用程序时才有效

好了,利剑的功能和使用方法已作介绍,下面让我们来用一下吧。

建第一个应用程序 1.4

创1.4.1建立一个VB应用程序的一般步骤:

1. 设计窗体,建立用户界面的对象;

2. 设置各对象的属性;

3. 为必要的对象进行事件过程的编程;

4. 程序运行与调试;

5. 保存文件和编译。

1.4.2实例

【例1.1】:设计一个计算两数乘法C=A*B的程序,要求用两个文本框分别输入乘

数和被乘数,一个文本框输出计算结果,两个按钮分别是计算按钮和清除按钮。

1.分析问题:

(1)给出被乘数A和乘数B的值

(2)求积:C=A*B

(3)显示积C的结果

根据题意,六个对象是必要的:被乘数A、乘数B得到值,单击计算按钮算出积,在积C中显示结果,清除按钮可清除A、B、C中的值,以便再计算其它乘法,还有容器-----窗体。

2.设计界面:

图1.11设计用户界面

3.属性的设置:

表1.1 对象属性设置

默 认

控件名

Form1

Text1

Text2

Text3

Label1

Label2

Label3

Command1

Command2

设置的控件名

(名称)

Form1

txtMultiplier

txtProduct

lblMultiplier

lblProduct

cmdCalculate

cmdClear

标 题

(Caption)两数相乘

无定义

无定义

乘数b

a*b的值

计算

清除

对齐方式

(Alignment)无定义

0-Left

0-Left

0-Left

2-Center

2-Center

2-Center

无定义

无定义

文 本

(Text)无定义

空白

空白

空白

无定义

无定义

无定义

无定义

无定义

字体字号

(Font)磅值

宋体规则小五

宋体规则小五

宋体规则小五

宋体规则小五

宋体粗体五号

宋体粗体五号

宋体粗体五号

宋体粗体小五

宋体粗体小五

txtMultiplicand

无定义

lblMultiplicand

被乘数a

注意:属性表中的“无定义”表示该对象无此属性,“空白”表示无内容。

4.编写事件过程

单击计算按钮、单击清除按钮

5.运行程序与调试

在VB中程序可以有两种运行模式:解释运行模式和编译运行模式。

解释运行模式是由系统读取事件激发的那段事件过程代码,将其转换为机器代码,然后执行该机器代码。由于转换后的机器代码不保存,如需再运行该程序,必须再解释一次。

编译运行模式是由系统读取程序中全部代码,然后再将其全部转换为机器代码,

并保存在 . EXE的可执行文件中,供以后多次使用,显然编译程序的运行速度比解释运行模式速度快的多。

VB中将错误分为三类:编译错误(语法错误)、运行错误和逻辑错误。

6.保存文件与编译

VB应用程序的保存分为两类:

一类是对工程文件的保存;*.vbp

另一类是对工程中的各类具体文件的保存,(*.frm,*.bas,*.cls)

两者缺一不可。

编译:生成*.EXE文件,可脱离VB环境直接在Windows平台上运行该程序。

有感觉了吗?别急,俗话说:一口吃不成胖子。慢慢消化吧!

本章重点:

1.面向对象的基本概念:对象、类、对象的属性、方法、事件、事件过程、事件驱动、窗体、控件

2. VB的集成环境

3. VB应用程序的开发步骤

第二章

常用控件(一)

在第一章中,我们已对用VB编写应用程序作一大致的了解:先分析问题,再设计用户界面,最后才去编写必要的事件过程。好,现在让我们一起先来学习窗体、几个常用的控件及简单的界面设计规则。

2.1

窗体

窗体是一种具有自身特定属性、方法和事件的对象,VB程序的基本构造模块,是运行应用程序时用户交互操作的实际窗口,也是其他对象的载体,它具有Windows窗体的基本特性,包括标题栏、控制菜单、窗体边框和窗口区。

图2.1应用程序窗体的外观

打开VB

一、 窗体的属性

1. 属性的设置

方法一:属性窗口

方法二:在程序中用程序代码设置:窗体名称.属性名=属性值。

如:n=“计算器”

2. 常用属性

Caption、Height、Left、Name、Top、Visible、Width、AutoRedraw、backcolor、

CurrentX、CurrentY、Enabled、FillColor、FontStyle、FontBold、FontItalic、FontName、FontSize、FontStrikethru、FontUnderline、ForeColor、MaxButton、 MinButton、Picture、ScaleHeight、ScaleLeft、ScaleMode、ScaleWidth、ScaleTop、 WindowState等

(1) 名称标识:

Name属性:用来标识窗体的名称,是字符串类型,它是一个以字母开头由字

母、数字和下划线组成的长度不超过40个字符的字符串,最好设置一个有实际意义的名称,如:frmCalculator。该属性值不允许与其他对象重名,也不允许使用Visual Basic的保留关键字和对象名,系统默认为在Form后加上1,2等。

(2) 外观:

Caption(标题)属性:用于设置窗体标题内容,其值是一个字符串。

BorderStyle(边界)属性:用于控制窗体边界的类型,表现窗体的显示风格,它有六个可选值(见表2.1)。

表2.1 边界属性值及其类型

属性值 边 界 类 型

0 None(无边界框架)

1 Fixed Single(窗口大小固定不变的单线框架)

2 Sizable(窗口大小可变的标准双线框架)

3 Fixed Dialog(窗口大小固定的对话框窗体)

4 Fixed Tool Window(窗口大小固定的工具箱窗体)

5 Sizable Tool Window(窗口大小可变的工具箱窗体)

ControlBox(控制菜单)属性:用来设置在应用程序窗口左上角是否出现控制菜单,它有两个值:True或False,缺省值为True,表示窗体有控制菜单。

MaxButton(最大化按钮)和MinButton(最小化按钮)属性:指定在运行时在窗体的标题栏右边是否出现最大化和最小化按钮,只有当ControlBox属性值为True时,这两个属性才起作用。

Icon(图标)属性:用于设置窗体运行时应用程序窗口标题栏最左边的图标形。在设计时可以通过打开Icon属性对话框,选择状,缺省的应用程序图标是

或输入一个图标文件名(扩展名为ICO 的文件),就可以更换应用程序的图标。

BackColor(背景颜色)属性:设置窗体背景的颜色,系统默认的背景是灰色。

Picture(图片)属性:允许用户以一幅图片作为窗体背景。窗体背景的图像文件格式可以有多种,Visual Basic支持以下几种图像文件格式:位图文件(*.bmp)、图形交换格式文件(*.gif)、JPEG压缩文件(*.jpg)、图元文件(*.wmf)、图标文件(*.ico)。

(3)尺寸位置和输出特性

Height(高度)、Width(宽度)、Left(左边距)和Top(顶边距):用于设置窗体的大小以及窗体在屏幕中的实际位置。Height和Width属性分别用于指定窗体的高度和宽度,即确定窗体的大小;Left和Top属性用来确定窗体左边界或上边界分别离开屏幕左边缘或上边缘的距离,即确定窗体在屏幕上出现的位置。

ScaleMode:设置窗体的度量单位,缺省度量单位是缇(Twip),它是一个与屏幕无关的单位,用来保证屏幕应用程序对屏幕元素的定位和比例在所有的显示系统上的一致性。1缇等价于 1/20 个打印机的磅。1英寸大约有 1440 缇,1厘米约 567

缇。

FontName(字体)属性:用于指定在窗体上输出字体的字库名称,缺省是宋体。通过程序代码可给它赋值,如:me=”黑体”。

FontSize(字号)属性:用于指定字体的大小,字体大小是以磅为单位。可在程序运行时通过程序代码给字号属性赋值实现。其格式为 FontSize=N 其中N是一个整型数,磅值。

FontBold(黑体)、FontItalic(斜体)、FontStrikethru(笔划体)、FontUnderline(下划线体)属性:用于指定输出到窗体上的数据格式,只有True或

False两种值,分别指定输出的字体风格是否为黑体、斜体、笔划体和下划线体。

CurrentX(X坐标) 、CurrentY(Y坐标)属性:运行时属性,用于控制输出到窗体的数据在窗体中的位置,分别代表当前输出点的X坐标和Y坐标。窗体坐标缺省是从窗体左上角作为度量的起点,在窗体的左边缘,CurrentX的值为0,在窗体的顶端,CurrentY的值为0。用户也可根据需要,通过设置窗体的ScaleLeft、ScaleTop、ScaleHeight和ScaleWidth属性值(以后介绍)来建立窗体自定义坐标系统。

FontTransparent(覆盖)属性:控制在向窗体输出数据时,若输出位置已有数据,是否将输出的数据覆盖背景文本或图形。值为True时表示覆盖原有数据,原有数据和新数据重叠显示;值为False时,擦除原有数据,只在指定输出位置显示新数据。

(4)其他特性

AutoRedraw属性:控制窗体图形的重建。当其他窗口已覆盖某窗体,返回该窗体时,是否重画窗体,值为True,则自动重画,缺省值为False,则不重画。

FillColor属性:对窗体中的各种形状(圆/矩形等)填充颜色。

FillStyle属性:确定以何种风格填充窗体上形状(圆/矩形等)。

如:Line (800, 800)-(2500, 2500), QBColor(13), B

Visible(可见性)属性:用来控制窗体是否在屏幕上显示,缺省值为True表示可见。不可见状态并不意味着该窗体在应用程序中不存在,它只表示目前该窗体在屏幕上不显示,它仍随同应用程序一起加载到内存中,在适当的时候,应用程序仍然可以通过程序代码对该窗体对象进行控制和操作。

Enabled(可用性)属性:用于确定窗体能否响应用户事件。值为True表示窗体能响应用户事件,否则,窗体不接受用户事件,即当前窗体处于不可用状态,处于不可用状态下的窗体,其上的所有控件也是不可用的。

WindowState属性:确定窗体窗口在运行时的可视状态,0:缺省值,正常窗口,1:窗口最小化,2:窗口最大化。

二、窗体的方法(窗体作为对象所具有的行为)

Cls、Show、Print、Hide、Move等

1. 方法的调用方式:

对象名 .方法名 [参数]

2. 常用的方法:

(1)Print(打印)方法:以当前所设置的前景色和字体在窗体上输出文本字符串。

调用格式:窗体名.Print [{Spc(n)|Tab(n)} 表达式列表 ]

其中

窗体名:是由窗体的Name属性所定义的窗体名称标识

Spc(n):在输出表达式前插入n个空格

Tab(n):将指定的表达式输出到窗体第n个打印列表区

表达式列表:由一个或多个数值或字符类型的表达式组成,表达式之间

必须用空格、分号或逗号隔开,空格视为和分号等价,若无表达式列表,则在当前位置输出一个空行。

打印区:VB把屏幕行每隔14列为一个打印区,分号表示光标定位在上一个显示字符之后(紧凑);逗号表示光标定位在下一个打印区的开始位置。

通常,Print方法打印一个表达式时,表达式的开始打印位置是由窗体当前的CurrentX和CurrentY属性决定的。当打印完一个表达式列表,Print方法会自动在表达式列表后加上一个回车,于是下一个Print方法会在下一行输出。

【例2.1】 在应用程序的窗体上输出一行文字“我是一名合格的大学生” (教材P131例5.1)

(2)Cls(清除)方法:用来清除运行时在窗体上显示的文本或图形,使用Cls方法后,窗体的CurrentX和CurrentY被设置为0。

调用格式: 窗体名.Cls

(3)Move(移动)方法:用来在在屏幕上移动窗体

调用格式:窗体名.Move left[,top[,width[,height]]]

其中,left、top、width、height分别用来表示窗体相对于屏幕左边缘的水平坐标、相对于屏幕顶部的垂直坐标、窗体的新宽度和新高度。

Move方法至少需要一个left参数值,如果要指定其余参数值,则必须按顺序依次给定前面的参数值。

【例2.2】 使用Move方法移动一个窗体,窗体移动后定位在屏幕的左上角,同时,窗体的尺寸也缩小一倍。(教材P132例5.2)

(4)Show(显示)方法:用于在屏幕上显示一个窗体,如果要显示的窗体事先未装入,则会自动装入该窗体再显示(使窗体的Visible 为True)。

调用格式: 窗体名.Show [Modal|Modaless]

其中:Modal为缺省,用户只能在本窗体进行选择、输入,不能切换到其他窗口。如:消息框

Modaless 可以允许用户随意在各个窗体之间切换。如:集成环境下的“代码”窗口切换到任何其他窗口。

(5)Hide(隐藏)方法:用于使指定的窗体不显示(使窗体的Visible属性设置为False)

调用格式:窗体名.Hide

(教材例5.3)

【例2.3】 实现将指定的窗体在屏幕上进行显示或隐藏的切换。

三、窗体的事件

Click、Load、Dblclick、KeyDown、KeyPress、KeyUp、MouseDown、MouseMove、MouseUp、Unload 等

在Visual Basic应用程序中,窗体的事件(Event)就是指由Visual Basic预先定义好的,能够被窗体对象所识别的动作。事件可以由用户激发,也可以由系统激发。窗体是控件的载体,是程序运行的主要场所,一些程序运行所必须的初始化操作和退出前的善后工作,往往要在窗体创建及退出时被激活的事件过程中进行。下面我们边了解窗体的生命历程:创建状态、加载状态、可见状态和卸载状态,边学习各阶段会发生的事件。

1. 窗体的创建

Initialize 事件:窗体创建状态开始的标志,窗体创建时最先执行的代码,只有窗体的代码部分在内存中,而窗体的可视部分还没调入。

2. 加载窗体

Load 事件:标志着加载状态的开始,窗体上的所有控件都被创建和加载,加载状态是窗体的一个根状态。在任何时候,只要隐藏了窗体,就由可见状态回到加载状态,Load事件在窗体的存活期中只运行一次。

3.可见状态(活动状态)

使用窗体的Show方法,可以使窗体进入可见状态,使用Hide方法,窗体返回加载状态。

Active 事件:当一个窗体变成活动窗体时所产生的事件。

Deactivate事件:当另一个窗体或应用程序被激活时所产生的事件。

Click事件:单击事件。

Dblclick事件:双击事件。

Keydown事件:键盘按下事件。

接受几乎所有的ASCII字符

Keyup事件:键盘释放事件。

Keypress事件:按键事件,从键盘按下到放开。只接受可打印的ASCII字符和少数组合键。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

Private Sub Form_KeyPress(KeyAscii As Integer)

其中:

KeyCode是键的编码,它是一个十进制整型数,键盘上的所有按键都有唯一确定的键的编码,它把输入的键解释为物理键,即只与键在键盘中的位置有关,通过第二个参数Shift来解释按键的状态。

Shift也是一个十进制整型数,它解释按键时组合键(Shift、Alt和Ctrl键)的状态。

KeyAscii,它表示所按键对应的ASCII码值。对于在键盘上相同位置的键,它们的ASCII值可能不同,如小写字符“a”的ASCII码为97,而大写字符“A”的ASCII码为65。

【例2.4】建立一个应用程序,实现将键盘输入的字符输出到当前应用程序的窗体上,当键入回车键时,清除窗体上输出的文本。(教材P136例5.4)

Gotfocus事件:获得焦点时发生的事件。(焦点的概念在命令按钮中介绍)

Lostfocus事件:失去焦点时发生的事件。

MouseMove事件:当在一个活动窗体上移动鼠标时,会触发的事件。

【例2.5】显示鼠标指针当前在窗体上的坐标位置。(教材P137例5.5)

Resize事件:当窗体首次出现在屏幕上或窗体尺寸改变时,会触发的事件。

4.窗体的卸载:窗体所占的内存和资源完全收回。

Unload事件:窗体卸载前最后发生的事件。

窗体学习完了,你会用它吗?下面我们继续学习几个常用控件。

件的使用 2.2

控控件是构成用户界面的基本构件,在VB中按其来源可分三大类:

内部控件:存在于VB的.EXE文件中,总在工具箱中。

Active X控件:扩展名为.OCX的独立文件,仅在专业版和企业版中提供的控件以及第三方开发商所提供的Active X控件。

可插入的对象:诸如Microsoft Excel工作表、Microsoft Project日历等可以添加到工具箱中的对象。

我们仅介绍内部控件及Active X控件中的通用对话框。

1. 添加和删除控件

添加控件 方法一:用鼠标左钮单击工具箱中所需控件的图标(选中),将鼠标指针移向窗体窗口上,指针变为“十”字,当指针位于要求位置上时,按下左钮并拖动鼠标,由鼠标移动而确定区域,显示为一个变灰的矩形区域,若满意则放开鼠标按钮,控件会出现在窗体的该位置上。

方法二:双击工具箱中控件图标,则该控件立刻会以缺省的大小出现在窗体的正中间。

删除控件 方法一:选中控件,在EDIT菜单中选择Delete项

方法二:选中控件,按Del键

方法三:选中控件,按鼠标右键,弹出菜单,选择Delete项。

控件被删除后,为控件编写的事件过程还存在。

2. 调整控件位置和大小

方法一:用鼠标手动改变位置及大小操作同在Word中处理图片。

方法二:在属性窗口中,改变Left、Top、Height和Width属性

3. 控件的复制和粘贴

拷贝、粘贴和剪切时,与之相关的属性值被复制,而事件过程并不一同操作,要使该控件具有相同的事件过程必须另外拷贝每个事件过程。

控件数组是指一组具有相同名称和类型的控件,它们的事件过程完全相同,但

属性可以单独设置。Index属性:用于指明控件数组的下标。

4. 成组处理控件

成组控件 方法一:用鼠标拉一个矩形虚框,将需成组控件框住。

方法二:先选中第一个控件,按下CTRL键,选择其余控件

处理:(1)被成组的控件可整体移动

(2)可同时对成组控件中共同的属性赋值

(3)排列整齐:用属性窗口中的Height、Width、Left和Top属性或用格式菜单中对齐、统一尺寸、按网格调整大小、水平间距、垂直间距等。

好,下面让我们开始学习常用控件,请注意它们的外观(属性)、行为(方法)和事件。

令按钮 2.3命

命令按钮是使用最多的控件对象之一。常常用它来接受用户的操作信息,激发某些事件,实现一个命令的启动、中断和结束等操作。

1.常用属性

Caption、Default、Enabled、Height、Name、Left、Top、Visible、Width、Cancel、FontBold、FontItalic、FontName、FontSize、FontStrikethru、FontUnderline、ForeColor、Index、TabIndex 、TabStop、Value等

 Caption属性

用于设置命令按钮上显示的文本。Caption属性最多包含255个字符。若标题超过了命令按钮的宽度,文本将会折到下一行。如果内容超过255个字符,则标题超出部分被截去。

创建命令按钮的访问键快捷方式,其方法是在作为快捷访问键的字母前添加一个连字符(&)。例如标题为“Print”的命令按钮创建快捷访问键“Alt+P”,则该命令按钮的Caption属性应设为“&Print”。运行时,字母P将带下划线,按Alt+P键就可选定命令按钮。

 TabIndex属性和TabStop属性

焦点(Focus):是接受用户鼠标或键盘输入的能力,当对象具有焦点时,可接受用户的输入。

在Windows系统中,任一时刻可运行几个应用程序,但只有具有焦点的应用程序才有活动标题栏,才能接受用户输入。在有几个控件的VB窗体中,只有具有焦点的控件才可以接受用户的输入。并不是所有的控件都可以接受焦点,如Frame、Label 等,而且只有不包含任何可接受焦点的控件的窗体,才能接受焦点。改变对象的焦点可以通过诸如制表(Tab)键切换、单击对象之类的用户动作以及在代码中使用SetFocus方法来实现。

TabIndex属性:决定Tab键焦点移动的先后顺序,从0开始。

TabStop属性:指出用户是否可以使用Tab键来选定对象,值为True,则可以;值为False,则仍保持它在实际Tab键顺序中的位置,只不过在按Tab键时这个控件被跳过。

 Default和Cancel属性 指定一个缺省命令按钮,应将其Default属性设置为True,则不管窗体上的哪一个控件有焦点,只要用户按Enter键,就相当于单击此缺省按钮。

Cancel属性可以指定缺省的取消按钮,在把命令按钮的Cancel属性设置为True后,不管窗体当前哪个控件有焦点,按Esc键,就相当于单击此缺省按钮。

 Value属性

在程序代码中触发命令按钮,使之在程序运行时自动按下,将该按钮的Value属性设置为True,则触发命令按钮的Click事件,执行命令按钮的Click事件过程。

2.常用事件

Click、GotFocus、LostFocus、KeyDown、KeyPress、KeyUp、MouseDown、MouseMove、MouseUp等

 MouseDown事件

按下任意鼠标按键时发生

 MouseUp事件

释放任意鼠标按键时发生

3.常用方法

Drag、Refresh、SetFocus等

 Drag方法

用来启动、终止或取消拖动控制。

调用格式:对象名称.Drag 参数

其中:参数用来指定拖动所采取的动作。当其值为0时表示取消拖动操作,为1时表示开始执行拖动操作,为2时则表示终止拖动操作。Drag方法只有当DragMode属性设置为0时,才是有效的。

 Refresh方法

强制性地重画窗体、控件或对象。

调用格式:对象名称.Refresh

 SetFocus 方法

设置对象成为焦点。

调用格式:对象名称.SetFocus

4.实例

【例2.6】 在一个窗体Form1上创建两个命令按钮,第一个命令按钮的名称为“CmdSource”,其Caption属性为“源按钮”,并在属性窗口中设置其DragIcon属性为磁盘形状的图标文件“”,该属性用于设置当拖动命令按钮时鼠标的形状。另一个命令按钮的名称为“CmdTarget”,其Caption属性为“目标按钮”。(教材P149例5.8)

2.4

输入类:文本框、列表框、组合框、滚动条

一、 文本框( TextBox)

通常用于显示用户输入的信息,作为接受用户输入数据的接口。

1.常用属性

Height、Left、Text、Name、Top、Visible、Width、Alignment、Enabled、FontBold、FontItalic、FontName、FontSize、FontStrikethru、FontUnderline、ForeColor、MaxLength、Multiline、PasswordChar、ScrollBars等

 Text属性

文本框控件的默认属性,其值就是文本框控件显示的内容。通常,Text属性所包含字符串中字符的个数不超过2048个字符。

 Alignment属性

设置文本的对齐特性。0:左对齐,1:右对齐,2:居中。

 MultiLine属性

可使文本框控件提供多行输入的功能。缺省时,MultiLine属性为False,表示只允许单行输入;当为True时,表示允许多行输入。

 ScrollBars属性

当文本框的MultiLine属性为True时,文本框的尺寸无法完全显示文本内容的情况,ScrollBars属性指定是否在文本框中添加水平和垂直滚动条。其值为0,表示无滚动条;其值为1,表示只使用水平滚动条;其值为2,表示只使用垂直滚动条;其值为3,表示在文本框中同时添加水平和垂直滚动条。

 MaxLength属性

用于设置在文本框所允许输入的最大字符数,缺省值为0,表示无字符限制,若给该属性赋一个具体的值,该数值就作为文本的长度限制;当输入的字符数超过设定值时,文本框将不接受超出部分的字符,并发出警告声。

 PasswordChar属性

将文本的显示内容全部替换为该属性所设置的字符,它常用于设置密码。如PasswordChar设定为“*”,则无论用户在文本框中输入什么字符,文本框只显示替代的字符“*”。要恢复文本在文本框中的正常显示,只须将该属性设置为空串。

 Locked属性

设置文本框的内容是否可以编辑。如果Locked属性设为True,则文本框中的文本成为只读文本,不能进行输入和编辑操作。

 SelStart、SelLength和SelText属性

文本框中对文本的编辑属性。

SelStart属性:确定在文本框中所选择文本的开始位置,若没有选择文本,则用于返回或设置文本的插入点位置,如果SelStart的值大于文本的长度,则SelStart取当前文本的长度;

SelLength属性:用于设置或返回文本框中选定的文本字符串长度;

SelText属性:设置或返回当前选定文本中的文本字符串。

2.常用事件

Change、Click、Dblclick、GotFocus、KeyDown、KeyPress、KeyUp、MouseDown、MouseMove、MouseUp等

 Change事件

当用户在文本框中输入新的信息或在程序运行时将文本框的Text属性设置为新值时,触发该事件。对于该事件,用户每向文本框输入一个字符就引发该事件一次。因此,Change事件的事件过程常用于对输入字符类型的实时检测。

3.常见方法

Drag、Refresh、SetFocus等

4. 实例

【例2.7】设计一个口令验证的应用程序,假设应用程序的口令是“2000”,若口令输入正确,则显示“口令输入正确”信息,并关闭应用程序;否则,显示“口令输入错误,请重新输入”信息,清除原输入的口令。(教材P154例5.10 )

二、列表框(ListBox)和组合框(ComboBox)控件

列表框 (ListBox)和组合框(ComboBox)都是列表类控件,向用户提供可选择项目的列表。它们有许多相似的功能、属性、方法和事件。

列表框 (ListBox)控件提供一个项目列表,用户可以从中选择一个或多个项目。在应用程序中,可以显示多列列表项目,也可以显示单列列表项目。如果列表中的项目超过列表框可显示的数目时,控件上将自动出现滚动条,供用户浏览项目,以便选择。

组合框(ComboBox)将文本框和列表框的功能结合在一起,用户既可以在组合框中像文本框一样直接输入文本来选定项目,也可以直接从列表中选定项目。组合框控件不支持多列显示。

1.常用属性

Height、Index、Left、List、ListCount、ListIndex、Name、Style(组合框)、Text、Top、Width、Enabled、Fontbold、FontItalic、FontName、FontSize、Sorted、ForeColor、MultiSelect(列表框)、NewIndex、Selected(列表框)、Visible等。

 Columns属性

用于指定列表框中列的数目(栏数)。列表框中的项目可以单列垂直显示,也可以水平单列或水平多列列表显示,其取值如表2.2所示。

表2.2 Columns属性值及其含义

0

1

大于1

描 述

垂直单列列表

水平单列列表

水平多列列表

Columns属性不适用于组合框,因为组合框不支持项目的多列显示。

 Text属性

用于直接返回当前选中的项目文本。该属性是一个只读属性,不能在设计时通过属性窗口设置,也不允许在程序运行时通过代码设置,它只用于获取当前选定的项目值。

 List属性

用来访问列表中的所有列表项,它是以字符串数组的方式存在的。在列表中,每一项都是List属性的一个元素。通过该属性,可以实现对列表框中每一列表项进行单独操作。列表框中第一个列表项的数组下标索引值为0,最后一个列表项的数组下标索引值为ListCount-1。

 ListIndex属性

用于设置或返回列表框或组合框中当前选定项目的下标索引。对于列表框,其索

引的缺省值为当前选中的项,对组合框而言,其索引缺省值为-1。当ListIndex属性值为-1时,表示当前没有列表项被选中,或者用户在组合框中输入了新的文本。

ListIndex属性可以与List属性结合起来使用,共同确定选定项目的文本。如当前列表框控件名称为List1,则(ListIndex)的值为列表框List1当前选定的项目文本,它与的值是完全相同的。

 ListCount属性

用于返回列表框或组合框中当前列表项的数目。ListCount属性的值总是等于列表中最后一个列表项的ListIndex的属性值加1。该属性是一个只读属性,不能在属性窗口中设置,只能在程序运行时访问它。

 NewIndex属性

返回最新加到列表框或组合框中列表项的下标索引值。该属性设计时不可用,运行时为只读属性。该属性主要用于已排序的列表框和组合框。当向已排序的列表框或组合框插入一项时,NewIndex属性将会告诉你,该项插在列表中的什么位置。如果在列表中没有任何列表项,则NewIndex属性返回值为-1。

 Sorted属性

指定列表框或组合框中的项是否按字母顺序进行排列。Sorted属性为运行时只读属性,它有两个值:True或False。值为True时,表示按字母顺序对列表中的项进行排序,排序时区分列表项中字母的大小写,同时,更改列表项的下标索引值;值为False时表示不对列表项进行排序。

 MultiSelect属性

只适用于列表框控件。该属性可以实现在列表中同时选择多个项目。MultiSelect

属性的取值如表2.3所示。

表2.3 MultiSelect属性值及其含义

属性值

0(None)

1(Simple)

2(Extended)

描述

缺省值,每次只能选择一个项目

简单多项选择

扩充多项选择

多项选择的方法既可以同时按下Shift键和方向键选择彼此相邻的项目,也可以按下Ctrl键,用鼠标逐个选择彼此不相邻的项目。

 Selected属性

只适用于列表框控件,当MultiSelect属性为True时,它用于确定列表框中某一项的选定状态。当某一项被选中时,对应数组元素的值为True,否则,对应的值为False。

 Style属性

列表框和组合框都具有Style属性。该属性只能在设计时设定。

列表框的Style属性用于确定列表框中列表项的表现形式,其取值有两种:为0(Standard)表示标准列表框,为1(Checkbox)表示在列表项的前面加上一个复选框。

组合框的Style属性用于确定组合框的样式。其取值有三种:

(1)Style值为0时,组合框为标准下拉式样式,如图2.2所示。

在这种情况下,用户可以直接输入文本,也可以单击组合框右侧的箭头,打开组合框所有选项列表,当用户选定了某一列表项后,该选项就插入到组合框顶部的文本框,同时关闭下拉列表。

图2.2 标准下拉式组合框

(2)Style值为1时,组合框为简单组合框样式,如图2.3所示。

图2.3 简单样式组合框

在这种情况下,用户可以直接输入文本,也可以从列表中选择项目。简单组合框的右侧没有下拉箭头,在任何时候,其列表都是显示的。当列表选项数目超过可显示的限度时,将自动添加一个垂直滚动条。

(3)当Style的值为2时,组合框为下拉列表样式,如图2.4所示。

图2.4 下拉列表样式组合框

用户只能从列表中选择。

2.常用事件

Click、Change(组合框)、Dblclick、KeyDown、KeyPress、KeyUP等

3.常用方法

AddItem、Clear、RemoveItem等

 AddItem方法

向列表框或组合框添加新的列表项。

调用格式:控件名.AddItem item,[index]

其中,控件名:列表框或组合框控件的名称。

Item: 添加到列表中的字符串表达式。

Index:指定在列表中插入新项目的位置,例如Index为0,表示将新项目添加到控件的第一个位置,如果缺省该参数,对于Sorted属性为True的控件,新项目按字母顺序添加到合适的位置上;对于Sorted属性为False的控件,新项目插入到列表的末尾。

对列表项目的添加是比较灵活的,在程序运行的任何时候都可以使用该方法动态地添加项目,通常在窗体的Load事件中添加列表项目。

 RemoveItem方法

从列表框或组合框中删除指定位置的列表项。

调用格式:控件名.RemoveItem Index

其中,Index参数是要删除项目在列表中所在的位置。

 Clear方法

用于删除列表框或组合框中的所有项目。Clear方法经常在列表刷新时使用。

4.实例

【例2.8】 创建一个应用程序,能在两个列表框中通过单击某个命令按钮,相互转移列表中选定的列表项。(教材P165例5.14)

三、滚动条

在VB中,滚动条控件分为水平滚动条(HScrollBar)控件和垂直滚动条(VScrollBar)控件,常常与需要浏览信息,但又不支持滚动功能的控件(如图片框控件)配合使用,为它们提供滚动浏览信息的功能;也可以作为用户信息输入的控件,如在多媒体应用程序中,使用滚动条来作为控制音量的设备。

1. 常用属性

Height、Left、Name、Max、Min、Top、Value、Width、Enabled、FontBold、FontItalic、FontName、FontSize、FontStrikethru、FontUnderline、ForeColor、LargeChange、SmallChange、Visible等

 Value属性

对应于滚动框在滚动条中的相对位置,其值是一个整数。对于水平滚动条,当滚动框处于最左边时,该属性取最小值;对于垂直滚动条,当滚动框处于最顶端时,该属性也取最小值。当滚动框处于中间的各个位置时,Value值界于最大值和最小值之间,并严格按照比例设定滚动框在滚动条中的位置。

改变滚动条Value属性的方法有四种:

① 直接在属性窗口中设定Value值;

② 鼠标单击两端箭头键改变滚动条数值;

③ 将滚动框沿滚动条拖动到任意位置;

④ 鼠标单击滚动条中滚动框与滚动箭头之间的部分,使滚动框以翻页的速度移动。

 Max和Min属性

用于设定滚动条Value属性的取值范围。通常情况下,Max代表Value的最大值,Min代表Value属性的最小值。缺省情况下,若未对Max和Min属性进行设置,Value属性的取值在0~32767范围内变化。

 LargeChange和SmallChange属性

LargeChange属性确定当在滚动框和滚动箭头之间单击鼠标时,Value属性值的变化量;SmallChange属性确定当用鼠标单击滚动条两端箭头时,Value属性值的变化量。这两个属性的缺省值都为1,变化量应该在Min和Max属性之间进行选择。

2. 常用事件

 Change事件

在改变滚动条Value属性值后触发。

 Scroll事件

在拖动滚动框时触发。

3. 常用方法

 Zorder方法

用来改变滚动条控件在界面上的前后显示顺序。

对于窗体和容器控件而言,存在着三个层:背景层、中间层和最外层。

调用格式: 控件名.Zorder 位置参数

其中位置参数有两个值:0或1,0表示该控件定位在最前面,是缺省设置;1表示该控件定位于其他控件的后面显示。

4. 实例

【例2.9】 创建一个应用程序,使用滚动条来浏览图形。(教材P161例5.13)

出类:标签 2.5

输标签控件是用来显示文本的控件,但没有文本输入的功能,它主要用来标注和显示提示信息。

1. 常用属性

Caption、Height、Left、Name、Top、Visible 、Width、Alignment、Backcolor、Enabled、FontBold、FontItalic、FontName、FontSize、FontStrikethru、FontUnderline、ForeColor等。

 Caption属性

用来改变Label控件中显示的文本。Caption属性允许文本的长度最多为1024字节。缺省情况下,当文本超过控件宽度时,文本会自动换行,而当文本超过控件高度时,超出部分将被裁剪掉。

 BackStyle属性

用于确定标签的背景是否透明。它有两种情况可选:值为0时,表示背景透明,标签后的背景和图形可见;值为1时,表示不透明,标签后的背景和图形不可见。

 AutoSize和WordWrap属性

AutoSize属性确定标签是否会随标题内容的多少自动变化。如果值为True,则随

Caption内容的大小自动调整控件本身的大小,且不换行;如果值为False,表示标签的尺寸不能调整,超出尺寸范围的内容不予显示。

WordWrap属性用来设置当标签在水平方向上不能容纳标签中的文本时是否折行显示文本。当其值为True时,表示文本折行显示,标签在垂直方向上放大或缩小以适合文本的大小,标签水平方向的宽度保持不变;其值为False时,表示文本不换行。

举例。

2.常用事件

Click、Dblclick

3.常用方法

Drag、Refresh

4.实例

【例2.10】 为一个标题为“关闭”的命令按钮添加一个命令按钮的提示行,当光标移到该命令按钮时,在命令按钮的下方显示一个背景色为淡黄色的提示行“关闭窗体,结束应用程序”。(教材P151例5.9)

2.6

设计窗体界面的基本原则

本章前面介绍的内容有些太实在了,着眼点全都是“窗体、控件,控件、窗体”的“一招一式”。在这一节中,我们要把眼光抬高一个层次,介绍一些“虚”的东西-----窗体设计应注意的一些原则,以便把应用程序的界面设计得尽可能美观、易用。

一、 什么是好的界面

用户喜欢。在开始设计用户界面之前,最好先去看看Microsoft或其他公司一些销路不错的应用程序,从中借鉴一些东西。

二、注意窗体的布局

1. 控件的位置:习惯与在一页之中从左到右、自上到下地阅读。

2. 界面元素:为了保持视觉上的一致性,再开始开发应用程序之前应先创建设计策略和类型约定。

3. 空白空间的使用:在设计中插入适当的空白空间可以突出设计元素,各控件之间一

致的间隔以及垂直与水平方向元素的对齐等。

4. 保持界面的简单明了:简单化。

5. 适当使用颜色与图象:应尽量限制应用程序所用颜色的种类,色调应该保持一致。

6. 图片和图标:在窗体中适当使用图片与图标可增加应用程序的视觉上的趣味,还可使用工具栏(以后会学)

7. 选取字体:最好坚持使用标准的Windows字体,如Arial、NewTimesRoman、宋体、黑体。

8. 要与Windows的界面设计相符。

现在我们已经学习了VB中窗体及部分常用控件的使用,也进行了简单的界面设计,一定很想自己也能编写小程序,解决一些简单的问题。下面,我们开始学习程序设计。

本章重点:

1. 熟练掌握窗体的概念、常用属性、事件和方法。

2. 控件的操作:控件的生成、改变位置大小、删除、剪切、拷贝、粘贴和成组控件。

3. 熟练掌握命令按钮的功能、常用属性、事件和方法。

4.熟练掌握常用于输入的文本框、列表框、组合框和滚动条的功能、常用属性、事件和方法

5.熟练掌握常用于输出的标签的功能、常用属性、事件和方法

第三章

程序设计基础

本章将介绍Visual Basic中有关基本语句、程序的书写规则、变量、常数、流程控制等基本内容,之所以有编程语言之说,就是因为编程和说话一样,都是用某种语法和词汇对自己想法的表达,程序员掌握的“语法和词汇”越多,就越能够让程序完整顺畅地体现自己的想法。

值语句 = 3.1

对象属性或变量 = 表达式

含义:将等号右边表达式的值传送给等号左边的变量或者对象属性

如:n=”两数相乘”

序的书写规则 3.2

程1.注释:程序员可以使用注释来说明自己编写某段代码或某个变量的目的,便于阅读理解程序。

格式1:’ 注释文字

格式2:Rem 注释文字

说明:注释可以和语句在同一行并写在语句的后面,也可占据一整行。

如:’下面的语句是赋值语句和注释的示例

=300 ’将窗体的宽度设置为300

2.

断行:将长语句分成多行。

续行符 “ _”(一个空格紧跟一条下划线)

如:strtemp=”问君归期未有期,”& _

”巴山夜雨涨秋池。”& _

“何当共剪西窗烛,”& _

“却话巴山夜雨时。”

注意: (1) 在同一行内,续行符后面不能加注释

(2) 续行符不应将变量名和属性分割在两行

(3) 原则上,续行符应加在运算符的前后

3. 将多行语句写在一行上

一行中写下多条语句,可用“:”作为分割符。

如:=300:temp=:n=”你好!”

量 3.3

变变量是指程序运行中其值可以变化的量。

一、 变量的命名规则:

在Visual Basic中命名一个变量要遵循如下的规则,否则系统不能正确的辨识。

⑴ 必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,不能在变量名中出现句点”。”、空格或者嵌入下列字符:!、#、@、$、%、&。

⑵ 变量名最长为255个字符。

⑶ 大小写字母同等对待,不能使用系统保留字

⑷ 在同一个范围内变量名必须是唯一的。

二、 变量的声明:

所谓声明一个变量即事先将变量的有关信息通知程序,以便系统可以确定变量的存储格式。在一般的高级语言中,使用变量必须遵循“先声明,后使用”的原则,但在VB中,变量在使用时不一定 “先声明,后使用”,它有显式声明、隐式声明之分。

隐式声明:即不声明而直接使用,变量以Variant类型处理。

显式声明:情况一 是在程序开头加入 Option Explicit强制显式声明语句;

情况二 是不加强制显式声明语句,对变量声明。

格式: Dim 变量名 [AS 类型]

其中:[AS 类型]表示可缺省,类型为数据类型

如: sub form_click()

dim temp as integer

temp=2 ‘显式声明情况二

a=4 ‘隐式声明

endsub

‘显式声明情况一

option explicit

sub form_click()

dim a as integer

dim b as integer

a=4

b=5

end sub

三、 变量的数据类型:

还可以由用户自定义数据类型。

VB提供了6类12种标准数据类型,我们首先介绍标准数据类型:数值型、字符型、逻辑型、日期型、对象型、变体

1. 数值(Numeric)数据类型

整型数、浮点数、货币型数、字节型数

(1) 整型数:是指不带小数点和指数符号的数,整型数运算速度快、精确,但表示数的范围小。

整型Integer(%): 存储长度为2个字节(16位), 数的表示范围是-32768~+32767。

长整数Long(&): 存储长度为 4个字节(32位),范围是-2147483648~2147483647。

(2) 浮点数:

浮点数由三部分组成:符号、尾数(Q)以及指数(J),即±QE(或)J。指数分别用“E”表示单精度、“D”表示双精度。浮点数的符号均占1位。

单精度浮点数Single(!):以4字节形式存储(32位),可以精确到7位十进制数,而单精度数的范围如下:

负数的范围是:-3.402823E+38~-1.401298E-45。

正数的范围是:+10401298E-45~+3.402823E+38。

双精度浮点数Double(#):以8字节形式存储(64位)。可以精确到15~16位十进制数。而双精度数的范围如下:

负数的范围是:

-1.797693134862315D+308~-.9465D-324

正数的范围是:

+4.945D-324~+1.797693134862315D+308

浮点数表示的数的范围大,但有误差,在做浮点数的运算时,应尽量使每一次运算的结果都在有效位数范围内;尽量不要使两个相差很大的数值直接相加或相减。

(3) 货币型数:

Currency(@):是定点数,在内存中存储为 64 位(8个字节)整型的数值形式,其小数点左边有 15 位数字,右边有 4 位数字。

范围: -922,337,203,685,477.5808~ 922,337,203,685,477.5807。

Currency 数据类型在货币计算与定点计算中很有用,因为在这种场合精度特别重要。

(4) 字节型数:

Byte:是二进制数。其存储为单精度型、无符号整型、8 位(1个字节)的数值形式,范围在 0 至 255 之间。

Byte 数据类型在存储二进制数据时很有用。

2. 字符(String)数据类型

String($):存放字符数据,所谓字符型数据就是用双引号括住的字符串,如:"Abcde"、"Visual Basic 欢迎你!"等。VB有两种字符串:变长字符串和定长字符串。

在字符串中每个字符占1个字节,字符数据的范围以字符串长度的大小来度量。

变长字符串所占的空间大小为10个字节加字符串,最多可包含大约20

.....亿(231)个字符;定义格式:DIM 变量名 AS String

如:DIM strtemp AS string

16 定长字符串所占字节就是字符串的长度,可包含1~大约64K(2)个字.....符。定义格式:DIM 变量名 AS String *字符串长度

如:DIM strname AS string *8

3. 逻辑(Boolean)数据类型

Boolean: 该类型变量主要用来进行逻辑判断,它的存储位数是16位。 数据只有两个值:True(真)或False(假)。

注意:在VB中,逻辑数据可以转换成整型数据。这时,True转换为-1,False转换为0;而当其他类型的数据转换成逻辑数据时,非零数转换成True,0转换为False。

4. 日期(Date)数据类型

Date:

是用来表示和存储日期和时间的数据,它是按8个字节的浮点数存储。任何字面上可被认作日期和时间的字符(除汉字外),只要用磅号(#)括起来都可以认作为日期型数据。

如:#1 Jan,97# 、#January 1,1999# 、#1999―8―1 12:30:12PM#

日期表示的范围是:从公元100年1月1日 ~ 9999年12月31日;

时间表示的范围是:从0:00:00 ~ 23:59:59。

注意:当其他数据转换成日期型数据时,小数点左边的数值代表日期,而小数点右边的数值代表时间:0为午夜12点,0.5为中午12点;负数代表的是1899年12月31日之前的日期和时间。

【例3.1】 下面程序在用户单击窗体后,可显示出由数据转化的日期和时间。

(教材P30例2.1)

5. 对象(Object)数据类型

Object: 存储为32位(4个字节)的数值形式,作为对象的引用。利用Set语句,声明为Object的变量可以赋值为任何对象的引用。

如: Sub form_click()

Dim Temp AS Object

Set Temp =form1

End Sub

6. 变体(Variant)数据类型

Variant:也称为万用数据类型,这是一种特殊的数据类型,它对数据的处理(即所需类型)可以根据上下文的变化而变化,除了定长的String数据及用户定义的类型之外,可以处理任何类型的数据而不必进行数据类型的转换。是对所有未定义的变量的缺省数据类型的定义。

Variant类型的数据可以根据运算的实际情况而“变体”, VB提供了一个函数VarType专门用来检测Variant中保存的数据类型,例如:VarType(123)的返回值为2,表示为整型。

VarType函数的返回值与数据类型的关系如表3.1所示。

表3.1 VarType函数数据类型检测

内部常数

vbEmpty

vbNull

vbInteger

vbLong

vbSingle

vbDouble

vbCurrency

vbDate

vbString

vbObject

vbError

vbBoolean

vbVariant

vbDataObject

vbByte

vbArray

VarType

返回值

0

1

2

3

4

5

6

7

8

9

10

11

12

13

17

8192

数据类型

空(Empty)

无效(Null)

整型(Integer)

长整型(Long)

单精度(Single)

双精度型(Double)

货币型(Currency)

日期型(Date)

字符型(String)

OLE自动化对象(OLE Automation Object)

错误(Error)

逻辑型(Boolean)

变体数组(Variant)

非OLE自动化对象(Non-OLE Automation Object)

字节型(Byte)

数组(Array)

数 3.4

常数是在程序运行中其值不变的量。

Visual Basic中包含三种常量:文字常量、符号常量、系统常量。

1. 文字常量

包含数值常量、字符串常量、逻辑型常量和日期型常量。

2.符号常量

用一个符号(一个字母组合)来代替长长的数字常量

声明格式:

Const 字符常量名 [AS 类型]=表达式

其中:

字符常量名:是有效符号名,其命名规则与变量名相同。一般使用大写,尽量选择易记、有意义的名称。

AS 类型:说明了该常量的数据类型,若省略该选项,则数据类型由表达式决定。也可用在符号常量名后加类型说明符来决定。

表达式:可以是数值常数、字符常数、时间日期以及运算符组成的表达式。

注意:⑴ 表达式中不能调用函数,即其中不能有函数元素。

⑵ 可以用先前定义过的符号常数定义新常数。

如:Const PI=3.1415926 '声明了常量PI,代表3.1415926 ,单精度型

Const MAX As Integer =&H21ED ' 声明了常量MAX,代表十六进制整型数21ED

Const COUNT# =53.78 '声明了常量COUNT,代表53.78,双精度型

Const BIRTHDAY=# 3/22/72#

Const PI 2= PI * 2

3.

系统常量

是由VB提供的并能够识别的、具有专用名称和作用的常数。VB6.0提供了如:颜色常数、控件常数、窗体常数、绘图常数、图形常数、键码常数等32类近千个常数,这些常数位于VB的对象库中。

如下表:

表3.2 VB的常用颜色常数

常 数

vbBlack

vbRed

vbGreen

vbYellow

&H0

&HFF

&HFF00

&HFFFF

描 述

黑色

红色

绿色

黄色

常 数

vbBlue

vbMagentavbCyan

vbWhite

&HFF0000

&HFF00FF

&HFFFF00

&HFFFFFF

描 述

蓝色

洋红

青色

白色

达式与运算符 3.5

表表达式是指由变量、常量、函数和运算符按一定的规则组成的一个字符序列。在VB6中可以进行4种运算:算术运算、比较运算、连接运算和逻辑运算。

3.5.1

算术运算

算术运算就是加减乘除及指数等数学运算。表3.3显示了VB6所有的算术运算及示例:

表3.3 算术运算符

运算符

-

^

*

/

优先级

Test=-7

取负值

指数 Test=3^2 ‘表示3的2

次方,结果为9

Test=37*16

乘法

由高到低

浮点数除法 Test=37/16 ‘结果为自左到右

2.3125

括号优先

整数除法 Test=3716 ‘结果为2

先四舍五入为整数后

再相除。

求余数 Test=37 mod 16 ‘结果

为5。先四舍五入为 低

整数后再求余数。

Test=37+16

加法、减法

Test=37-16

说明 示例

Mod

+,-

如:设X=2.5,A=7,Y=4.7,求下面表达式的值。

X+(A3)*(X+Y)^2-3.5 MOD 2/2 ‘表达式必须写在同一水平上

2 7.2

51.84

103.68 1

0

106.18

106.18

3.5.2

比较运算

比较运算(关系运算)就是比较大小,结果为真(True)、假(False)和Null。

表3.4 比较运算符

运算符

>

说明

大于

<

>=

<=

=

<>

小于

大于或等于

小于或等于

等于

不等于

运算规则:

如果两个操作数都是数值型,则按其大小比较。

② 如果两个操作数都是字符型,则按字符的ASCII码值从左到右一一比较,即首先比较两个字符串的第一个字符,其ASCII码值大的字符串大;如果第一个字符相同,则比较第二个字符,依此类推,直到出现不同的字符为止。

③ 如果一个表达式是数值型,另一个表达式是不能转换成数值的字符型,则不能进行比较。

④ 关系运算符的优先级相同,运算时从左到右依次进行。

⑤ 两个运算符中有一个是Null,则运算结果为Null。

关系表达式:用关系运算符及括号将操作数连接的式子

如:(3>1)=(4<2);0=(4<2);18.5<15.4

3.5.3

连接运算

连接运算就是将两个表达式连接在一起。运算符有:

&:用来强制两个表达式作字符串连接。

+:如果两个表达式都为字符串,则将两个字符串连接;若一个为字符串而另一个为数字则进行相加运算。

如下表:

表3.5 两种连接运算符“&”和“+”的比较

& +

表达式1 表达式2

“123” “3” “1233” “1233”

123 3 “1233” 126

“123” 3 “1233” 126

“123a” 3 “123a3”

报错

3.5.4

逻辑运算(布尔运算)

逻辑运算通常用来表示比较复杂的关系,如:女工程师,表示为:性别=“女”

AND 职称=“工程师”。结果为真(True)和假(False)。表3.6列出了VB中所有的逻辑运算符和它们表示的逻辑关系。

表3.6 逻辑运算符和它们表示的逻辑关系

运算符

Not

And

Or

Xor

Eqv

Imp

说 明

逻辑非

逻辑与

逻辑或

逻辑异或

逻辑等于

逻辑蕴含

优先级

1

2

3

4

5

6

说 明

当操作数为假时,结果为真

操作数均为真时,结果才为真

Not F

T And F

T And T

T Or F

F Or F

T Xor F

T Xor T

T Eqv F

F Eqv F

T Imp F

T Imp T

结 果

T

F

T

T

F

T

F

F

T

F

T

操作数中有一个为真时,结果为真

操作数相反时,结果才为真

操作数相同时,结果才为真

第一个操作数为真,第二个操作数为假时,结果才为假,其余结果都为真

如: 计算下面表达式的值:

① (15>3)And (6>2) 结果为 True

② (7>3)Or (2>6) 结果为 True

③ Not(2>6)And (6>2) 结果为 True

④ ("a">"A")Xor ("b">"B") 结果为 False

⑤ (7.8>3.2)Eqv (16.8>7.2) 结果为 True

⑥ (16.3>7.0)Imp(4.5>19.2) 结果为 False

⑦ (4.5>19.2)Imp(16.5>7.0) 结果为 True

注意:逻辑运算一般是对关系表达式或逻辑量进行的,但也可以对数值进行运算。在对数值进行运算时,是以数字的二进制值逐位进行逻辑运算的。

如: 10 And 7

10的二进制数为1010;7的二进制数为0111,对它们逐位进行逻辑运算得到二进制数为0010,结果是十进制数2。

3.5.5

运算的优先顺序

当一个表达式中出现多种运算符时,即同时出现算术、关系和逻辑时,如何

决定运算的次序呢?这就需要考察一下这三类运算符的优先次序。优先级高的运算符先运算,运算符的优先级相同时,从左向右进行运算。

VB运算符的优先级见下表:

表3.7 VB运算符的优先级

优先级

1

2

3

4

5

6

7

1

算术运算符

-(负号)

^

*,/

Mod

+,-

&

2

关系运算符

=

<>

<

>

<=

>=

3

逻辑运算符

Not

And

Or

Xor

Eqv

Imp

如:用一个逻辑表达式表示满足闰年的条件。

解:闰年的条件是:

① 能被4整除,但不能被100整除的年份都是闰年。

② 能被100整除,又能被400整除的年份是闰年。

用Year表示一个年份,则有如下的判断条件:

Year Mod 4=0 And Year Mod 100 <> 0 Or Year Mod 400=0

程控制语句 3.6

流程序的执行就象水在管道中流动,如果不加以控制,只能从上流到下。使用控制结构就可控制程序执行的流程。在VB中,控制程序执行的基本结构有三种:顺序结构、选择结构和循环结构。程序中所体现出的“智能”就是通过条件判定和循环语句来实现的。

下面我们就要自己动手编程了,首先学习算法的表示,再学习三种基本结构。

3.6.1

算法的表示

算法:即对一个问题的解决方法和步骤。

任何一个问题能否用计算机解决,一个关键的步骤就是看能否设计出它的算法,有了合适的算法,再使用合适的计算机语言,就能方便地编写出程序来。

一、算法的特点

(1)有穷性:一个算法必须在执行有穷个计算步骤后终止;

(2)确定性:一个算法给出的每个计算步骤,必须都是精确定义的、无二义性的;

(3)能行性:算法所要执行的每一个计算步骤,都是可以在有限时间内做完的;

(4)输入:一个算法一般要求有一个或多个输入信息,这些输入信息是算法所需的初始数据;

(5)输出:一个算法一般要求有一个或多个输出信息,这些信息一般就是对输入信息计算的结果。

二、算法的表示

表示算法的形式很多,如传统流程图、自然语言、N-S结构化流程图等等。我们用直观、形象的流程图来表示算法。

.起止框,表示算法的开始或结束。

.处理框,表示初始化或运算赋值等操作。

.输入输出框,表示数据的输入输出操作。

.判断框,表示根据条件决定程序的流向。

.流程线,表示流程的方向。

【例3.2】:将某班级中计算机、英语、数学三门课成绩总和大于等于270分的学生发给奖学金200元,并显示这些学生的姓名、奖学金。若成绩总和小于270分,则显示该学生没有奖学金。当从键盘输入完最后一名学生的成绩后,输入一个特殊符号“#”。

分析:

⑴由键盘输入学生的姓名、三门课的成绩。

⑵判断是否输入了一个特殊符号“#”。是,程序结束。否,继续执行⑶。

⑶求三门课的总成绩。

⑷判断总成绩是否大于270分。否,显示没有奖学金。是,继续执行⑸。

⑸奖学金发200元,显示该学生的姓名和奖学金。

⑹再次输入学生的姓名,流程返回到⑴继续执行。

图3.1 例3.1流程图

3.6.2

顺序结构

顺序结构是一种最简单、最基本的程序控制结构,任何程序必须包含顺序结构。它的特点是,在这个结构内各语句块是按照它们出现的顺序从上到下依次执行的。

语句块1

语句块2

图3.2顺序结构

3.6.3

选择结构

条件判定语句在程序运行中起的是水龙头的作用,只有满足条件的,才会执行某些语句,否则程序将按照另一个流程执行。

图3.3 选择结构

VB支持的条件判定结构有3种,它们是:

 If … Then

 If … Then … Else

 Select Case

一、 If … Then结构

1. 只选择执行一条语句:

If 条件 Then 语句块1 [Else 语句块2]

如:If x>=y then x=x+y : sum=sum+x else x=x-y : sum=sum-x

注:这条语句必须在一行中写完

2.需要执行多条语句:

If 条件 Then

语句块

End If

如:If Name = “Text1” Then

= “欢迎使用Visual Basic 6.0系统”

End If

二、If … Then … Else结构

使用If … Then … Else结构可以从几个程序流程分支中选择一个执行。

格式:

If 条件1 then

语句块1

[ElseIf 条件2 Then

语句块2 ]

[ElseIf 条件3 Then

语句块3 ]

.....

[Else

语句块n]

End If

流程图:

图3.4 If … Then … Else结构

除此之外,条件还可以是下面的形式:

Type Of 控制变量 Is 对象类型

它测试某个控制变量是否为某种对象类型,如果是,则条件满足,返回True;否则条件不满足,返回False。

例如:If Type Of Listvar Is ListBox Then

表示如果Listvar控制是一个列表框类型的控制,则执行Then后面的语句块;否则执行下面的语句。

【例3.4】判断某年是否为闰年。计算闰年的方法是,如果某年份能被4整除并且不能被100整除的或者能被400整除的,则该年为闰年。(教材p92例3.5)

分析: 1.输入某年

2.判断是否为闰年

3.显示结果

根据题意, 需七个对象: 在一个文本框中输入某年,单击命令按钮判断是否为闰年,在一标签中显示结果, 按一按钮清空文本框,开始新的判断,两个标签为提示信息,一个窗体。

流程图:

图3.5 例3.4流程图

(教材p94例3.7)

【例3.5】求一元二次方程 ax2+bx+c=0 的根。分析:1.输入方程系数a,b,c

2.求出D=B^2-4AC

3.判断D<0 , 是求出两个复根;否则判断D=0,是求出两个相等的实根,否求出两个不相等的实根。

4.显示结果

根据分析,需11个对象:用三个文本框输入系数A、B、C,计算按钮求出D并判断,得出结果,在两个标签上显示方程和结果,清空按钮,三个标签作提示,一个窗体。

流程图:

图3.6 例3.5 流程图

请思考:若A、B、C三个系数不能构成一元二次方程呢?

三、Select Case 结构

用来实现多分支选择。对于多种选择来说,效率比条件语句更高,更容易维护和阅读。

格式:Select Case 测试变量(或测试表达式)

Case 表达式列表1

语句块1

[ Case 表达式列表2

语句块2 ]

....

[ Case Else

语句块n ]

End Select

其中:

 测试变量:称为Case变量,它可以是一个变量、表达式或常量,可以是数值型或字符串型。

 表达式列表:可以是下面三种形式之一:

表达式

表达式 To 表达式

Is 比较运算符表达式

To,Is是关键字,后两种形式可用来设定值的范围

例如:Case 1 To 10 ’测试变量的值落在1 到10 范围内,则匹配;

Case Is>100 ’测试变量的值大于100,则匹配;

Case子句中允许出现多个表达式

例如:

Case 1 to 5,12,Is>Min

表示测试变量的值在1 到5范围内,或者12,或者大于Min,均匹配。

Case子句中的表达式列表允许是字符串

例如:

Case “Xie”,“Li”TO “Wang”,Name$

表示只要测试变量的值与Xie 匹配或落在“Li”TO “Wang”之间或与Name$的值匹配,均认为匹配成功。

 表达式列表的数据类型应与测试变量值的类型一致,否则将强制转换为测试变量值的数据类型。

执行流程:

图3.7 Select Case 结构

(教材P93例3.9)

【例3.6】通过一个文本框读入一个学生成绩,然后打印出它的等级。分析的流程图:

图3.8 例3.6流程图

3.6.4

循环结构

计算机可以为我们不厌其烦地重复做某一项工作成千上万,这就是循环控制的功能。

建自己的数据类型 3.7创举

3.8

枚组

3.9数用算法

3.10

第四章

程序设计基础

本章将介绍Visual Basic中有关基本语句、程序的书写规则、变量、常数、流程控制等基本内容,之所以有编程语言之说,就是因为编程和说话一样,都是用某种语法和词汇对自己想法的表达,程序员掌握的“语法和词汇”越多,就越能够让程序完整顺畅地体现自己的想法。

值语句 = 3.1

对象属性或变量 = 表达式

含义:将等号右边表达式的值传送给等号左边的变量或者对象属性

如:n=”两数相乘”

序的书写规则 3.2

程4.注释:程序员可以使用注释来说明自己编写某段代码或某个变量的目的,便于阅读理解程序。

格式1:’ 注释文字

格式2:Rem 注释文字

说明:注释可以和语句在同一行并写在语句的后面,也可占据一整行。

如:’下面的语句是赋值语句和注释的示例

=300 ’将窗体的宽度设置为300

5.

断行:将长语句分成多行。

续行符 “ _”(一个空格紧跟一条下划线)

如:strtemp=”问君归期未有期,”& _

”巴山夜雨涨秋池。”& _

“何当共剪西窗烛,”& _

“却话巴山夜雨时。”

注意: (1) 在同一行内,续行符后面不能加注释

(4) 续行符不应将变量名和属性分割在两行

(5) 原则上,续行符应加在运算符的前后

6. 将多行语句写在一行上

一行中写下多条语句,可用“:”作为分割符。

如:=300:temp=:n=”你好!”

量 3.3

变变量是指程序运行中其值可以变化的量。

一、变量的命名规则:

在Visual Basic中命名一个变量要遵循如下的规则,否则系统不能正确的辨识。

⑴ 必须是以字母、汉字开头的字母、汉字、数字、下划线组成的字符串,不能在变量名中出现句点”。”、空格或者嵌入下列字符:!、#、@、$、%、&。

⑵ 变量名最长为255个字符。

⑶ 大小写字母同等对待,不能使用系统保留字

⑷ 在同一个范围内变量名必须是唯一的。

二、变量的声明:

所谓声明一个变量即事先将变量的有关信息通知程序,以便系统可以确定变量的存储格式。在一般的高级语言中,使用变量必须遵循“先声明,后使用”的原则,但在VB中,变量在使用时不一定 “先声明,后使用”,它有显式声明、隐式声明之分。

隐式声明:即不声明而直接使用,变量以Variant类型处理。

显式声明:情况一 是在程序开头加入 Option Explicit强制显式声明语句;

情况二 是不加强制显式声明语句,对变量声明。

格式: Static|Dim 变量名 [AS 类型]


本文标签: 窗体 属性 控件 对象 表示