第 1 章 Visual Basic 概述

228
第1 第第第 第 第第第 第 1第 1 1 Visual Basic Visual Basic 第第 第第

description

第 1 章 Visual Basic 概述. 学习目标. 掌握 VB 的启动 / 退出方法; 理解 VB 集成开发环境中各个组成部分之间的功能和相互间的关系; 初步掌握 VB 程序设计步骤; 理解基于对象程序设计方法的基本思想。. 1.1 VB 的启动和退出. VB 启动的三种方法: 单击 【 开始 】→【 程序 】→【Microsoft Visual Basic 6.0 中文版 】→【Microsoft Visual Basic 6.0 中文版 】 命令; - PowerPoint PPT Presentation

Transcript of 第 1 章 Visual Basic 概述

Page 1: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 11页页

第 第 1 1 章 章 Visual BasicVisual Basic 概述概述

Page 2: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 22页页

学习目标学习目标

掌握掌握 VBVB 的启动的启动 // 退出方法;退出方法; 理解理解 VBVB 集成开发环境中各个组成部分之间集成开发环境中各个组成部分之间

的功能和相互间的关系;的功能和相互间的关系; 初步掌握初步掌握 VBVB 程序设计步骤;程序设计步骤; 理解基于对象程序设计方法的基本思想。理解基于对象程序设计方法的基本思想。

Page 3: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 33页页

1.1 VB1.1 VB 的启动和退出的启动和退出

VBVB 启动的三种方法:启动的三种方法: 单击【开始】→【程序】→【单击【开始】→【程序】→【 Microsoft Visual Microsoft Visual

Basic 6.0Basic 6.0 中文版】→【中文版】→【 Microsoft Visual Basic 6.Microsoft Visual Basic 6.00 中文版】命令;中文版】命令;

若桌面上已建立了“若桌面上已建立了“ Microsoft Visual Basic 6.0Microsoft Visual Basic 6.0中文版”快捷方式,则直接单击该快捷方式图标中文版”快捷方式,则直接单击该快捷方式图标;;

在资源管理器中直接双击在资源管理器中直接双击 VB 6.0VB 6.0 的程序文件“的程序文件“VB6.exe”VB6.exe” 。。

Page 4: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 44页页

1.1 VB1.1 VB 的启动和退出(续)的启动和退出(续)

退出退出 VBVB 的三种方法:的三种方法: 选择【文件】→【退出】命令退出选择【文件】→【退出】命令退出 VBVB ;; 单击窗口右上角的【关闭】按钮退出单击窗口右上角的【关闭】按钮退出 VBVB ;; 按快捷键按快捷键 Alt+F4Alt+F4 或或 Alt+QAlt+Q 退出退出 VBVB 。。

Page 5: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 55页页

1.2 VB1.2 VB 集成开发环境集成开发环境

标题栏标题栏 菜单栏菜单栏 工具栏工具栏 控件工具箱控件工具箱 工程资源管理器工程资源管理器 窗体设计器窗体设计器 属性窗口属性窗口 代码编辑窗口代码编辑窗口 立即窗口立即窗口

Page 6: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 66页页

1.31.3 一个简单的一个简单的 VBVB 实例实例

【例【例 1-11-1 】设计一个】设计一个 VBVB 小程序,其中包含小程序,其中包含了三个单选按钮、一个图片框、一个命令按了三个单选按钮、一个图片框、一个命令按钮。当用户单击其中的一个单选按钮时,在钮。当用户单击其中的一个单选按钮时,在其右边的图片框中就会出现相应的动物图片其右边的图片框中就会出现相应的动物图片,单击【退出】按钮可结束程序的运行。,单击【退出】按钮可结束程序的运行。

Page 7: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 77页页

1.31.3 一个简单的一个简单的 VBVB 实例(续)实例(续)

用户界面用户界面

Page 8: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 88页页

设计步骤设计步骤

新建工程。新建工程。 设计用户界面。设计用户界面。

Page 9: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 99页页

设计步骤(续)设计步骤(续)

设置窗体和控件的属性。设置窗体和控件的属性。 实例中窗体和控件的属性设置实例中窗体和控件的属性设置

窗体或控件 属性 属性取值 属性含义窗体 Caption "选择你最喜欢的动物" 标题

第一个单选按钮 Caption "老虎" 标题第二个单选按钮 Caption "熊猫" 标题第三个单选按钮 Caption "大象" 标题命令按钮 Caption "退出" 标题

Page 10: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1010页页

设计步骤(续)设计步骤(续)

窗体与控件的默认名称与新名称对照表窗体与控件的默认名称与新名称对照表

窗体或控件 默认名称 新名称窗体 Form1 f rmOptAni mal

第一个单选按钮 Option1 optTi ger

第二个单选按钮 Option2 optPanda

第三个单选按钮 Option3 optEl ephant

命令按钮 Command1 cmdExi t

图片框 Picture1 pi cAni mal

Page 11: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1111页页

设计步骤(续)设计步骤(续)

编写事件代码。编写事件代码。 实例中的事件及响应的操作实例中的事件及响应的操作

Page 12: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1212页页

设计步骤(续)设计步骤(续)

编写、输入和编辑事件过程代码编写、输入和编辑事件过程代码Private Sub optTiger_Click()Private Sub optTiger_Click() picAnimal.Picture = LoadPicture("c:\mypicture\tiger.jpg")picAnimal.Picture = LoadPicture("c:\mypicture\tiger.jpg")End SubEnd SubPrivate Sub optPanda_Click()Private Sub optPanda_Click() picAnimal.Picture = LoadPicture("c:\mypicture\panda.jpg")picAnimal.Picture = LoadPicture("c:\mypicture\panda.jpg")End SubEnd SubPrivate Sub OptElephant_Click()Private Sub OptElephant_Click() picAnimal.Picture = LoadPicture("c:\mypicture\elephant.jpg")picAnimal.Picture = LoadPicture("c:\mypicture\elephant.jpg")End SubEnd SubPrivate Sub cmdExit_Click()Private Sub cmdExit_Click() endendEnd SubEnd Sub

Private Sub optTiger_Click()Private Sub optTiger_Click() picAnimal.Picture = LoadPicture("c:\mypicture\tiger.jpg")picAnimal.Picture = LoadPicture("c:\mypicture\tiger.jpg")End SubEnd SubPrivate Sub optPanda_Click()Private Sub optPanda_Click() picAnimal.Picture = LoadPicture("c:\mypicture\panda.jpg")picAnimal.Picture = LoadPicture("c:\mypicture\panda.jpg")End SubEnd SubPrivate Sub OptElephant_Click()Private Sub OptElephant_Click() picAnimal.Picture = LoadPicture("c:\mypicture\elephant.jpg")picAnimal.Picture = LoadPicture("c:\mypicture\elephant.jpg")End SubEnd SubPrivate Sub cmdExit_Click()Private Sub cmdExit_Click() endendEnd SubEnd Sub

Page 13: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1313页页

设计步骤(续)设计步骤(续)

程序的保存程序的保存 程序的运行、结束程序的运行、结束 程序的打开和修改程序的打开和修改

Page 14: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1414页页

1.4 VB1.4 VB 程序的基本概念和步骤程序的基本概念和步骤

VBVB 基于对象程序设计的基本概念基于对象程序设计的基本概念 对象:对象指的是任何的具体事物,在面向对象对象:对象指的是任何的具体事物,在面向对象

的程序设计中,对象是最基本的元素。用的程序设计中,对象是最基本的元素。用 VBVB 开开发应用程序,就是要先创建对象,窗体、单选按发应用程序,就是要先创建对象,窗体、单选按钮、图片框和命令按钮等都是钮、图片框和命令按钮等都是 VBVB 的对象。的对象。

属性:对象所具有的特征称为对象的属性。属性:对象所具有的特征称为对象的属性。 VBVB中的对象,如窗体、单选按钮、图片框和命令按中的对象,如窗体、单选按钮、图片框和命令按钮等都具有一定的属性。钮等都具有一定的属性。

Page 15: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1515页页

VBVB 基于对象程序设计的基本概念(续)基于对象程序设计的基本概念(续)

对象属性的设置方法:对象属性的设置方法: 利用属性窗口;利用属性窗口; 利用程序语句来设置属性:利用程序语句来设置属性:

〈对象名〉.〈属性名称〉=〈新属性值〉〈对象名〉.〈属性名称〉=〈新属性值〉举例: 举例: frmOptAnimal.Caption="frmOptAnimal.Caption=" 选择你最喜欢的动物选择你最喜欢的动物 ""

optTiger.Caption="optTiger.Caption=" 老虎老虎 ""

Page 16: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1616页页

VBVB 基于对象程序设计的基本概念(续)基于对象程序设计的基本概念(续)

事件及事件过程事件及事件过程 事件是指由事件是指由 VBVB 预先设置好的、能够被对象识别预先设置好的、能够被对象识别

的动作;事件过程指动作发生后相应地执行的一的动作;事件过程指动作发生后相应地执行的一个过程;个过程;

事件过程的一般格式:事件过程的一般格式:Private Sub Private Sub 对象名称对象名称 __ 事件名称()事件名称() …… ……

事件响应的程序代码事件响应的程序代码 …… ……

End SubEnd Sub

Page 17: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1717页页

VBVB 基于对象程序设计的基本概念(续)基于对象程序设计的基本概念(续)

举例:举例:

方法:方法是对象能够执行的一些操作,方法:方法是对象能够执行的一些操作,是对象的行为。是对象的行为。 VBVB 方法的调用格式:方法的调用格式:〈对象名称〉.〈方法名称〉〈对象名称〉.〈方法名称〉举例: 举例:

frmPoem.Print “frmPoem.Print “ 春眠不觉晓,处处闻啼鸟。春眠不觉晓,处处闻啼鸟。 ""frmPoem.ClsfrmPoem.Cls

Page 18: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1818页页

VBVB 程序设计的一般步骤程序设计的一般步骤

建立用户界面建立用户界面 建立窗体对象;建立窗体对象; 添加控件;添加控件; 控件的选定;控件的选定; 控件的缩放和移动;控件的缩放和移动; 控件的复制和删除;控件的复制和删除; 控件的对齐和分布;控件的对齐和分布;

Page 19: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 1919页页

VBVB 程序设计的一般步骤(续)程序设计的一般步骤(续) 设置对象的属性设置对象的属性

直接输入属性的值;直接输入属性的值; 通过对话框设置对象的属性;通过对话框设置对象的属性; 利用列表框设置对象的属性;利用列表框设置对象的属性;

编写程序代码 编写程序代码 程序代码的编写是在代码编辑窗口进行的,该窗口提供了程序代码的编写是在代码编辑窗口进行的,该窗口提供了

许多自动功能来简化代码的编写工作。许多自动功能来简化代码的编写工作。 自动产生事件过程的起始行和结束行;自动产生事件过程的起始行和结束行; 自动列出对象的属性和方法;自动列出对象的属性和方法; 快捷菜单功能;快捷菜单功能; 自动提示信息;自动提示信息; 自动的语法检查;自动的语法检查;

程序的保存、运行、结束和编译程序的保存、运行、结束和编译

Page 20: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2020页页

结束结束

Page 21: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2121页页

第 第 2 2 章章Visual BasicVisual Basic 程序设计基础程序设计基础

Page 22: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2222页页

学习目标学习目标

了解了解 VBVB 可以处理的各种数据类型;可以处理的各种数据类型; 掌握常量和变量的基本概念、类型及变量的掌握常量和变量的基本概念、类型及变量的声明和赋值方法;声明和赋值方法;

了解运算符与表达式的有关内容;了解运算符与表达式的有关内容; 掌握输入函数、输出(消息)函数和格式输掌握输入函数、输出(消息)函数和格式输

出函数以及其他一些内部函数的使用方法;出函数以及其他一些内部函数的使用方法; 了解数组的概念,并掌握控件数组的使用方了解数组的概念,并掌握控件数组的使用方

法。法。

Page 23: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2323页页

2.12.1 数据类型数据类型

数据类型

整型数

长整型数

数值型数据

字符串数据

日期型数据

逻辑型数据

变体型数据

对象型数据

整数

浮点数

货币型数

字节型数

定长字符串

变长字符串

单精度浮点数

双精度浮点数

Page 24: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2424页页

2.12.1 数据类型(续)数据类型(续)

VBVB 的基本数据类型及对应的名称的基本数据类型及对应的名称

类型名称 数据类型 类型名称 数据类型整型 Integer 定长字符串 Stri ng

长整型 Long 变长字符串 Stri ng

单精度型 Single 日期型 Date

双精度型 Double 逻辑型 Bool ean

货币型 Currency 对象型 Obj ect

字节型 Byte 变体型 Vari ant

Page 25: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2525页页

2.22.2 常量和变量常量和变量

【例【例 2-12-1 】编制一个】编制一个 VBVB 小程序,该程序运小程序,该程序运行后,用户只要用鼠标在名为“行后,用户只要用鼠标在名为“ frmPoem”frmPoem”的窗体上单击,就可以修改窗体的标题、高的窗体上单击,就可以修改窗体的标题、高度和宽度属性,并用“度和宽度属性,并用“ 2020 号”的“楷体”号”的“楷体”字显示唐诗“春晓”的诗句,如下图所示。字显示唐诗“春晓”的诗句,如下图所示。

Page 26: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2626页页

例例 2-1 2-1 程序代码程序代码

Private Sub Form_Click()Private Sub Form_Click() Dim Str1 As String *12Dim Str1 As String *12 frmPoem.Width = 5500frmPoem.Width = 5500 frmPoem.Height = 1500frmPoem.Height = 1500 frmPoem.Caption = "frmPoem.Caption = " 春晓春晓 "" frmPoem.FontName = "frmPoem.FontName = " 楷体楷体 _GB2312" _GB2312" frmPoem.FontSize = 20frmPoem.FontSize = 20 frmPoem.ClsfrmPoem.Cls Str1 = "Str1 = " 春眠不觉晓,处处闻啼鸟。春眠不觉晓,处处闻啼鸟。 "" frmPoem.Print Str1frmPoem.Print Str1 Str1 = "Str1 = " 夜来风雨声,花落知多少?夜来风雨声,花落知多少? "" frmPoem.Print Str1frmPoem.Print Str1End SubEnd Sub

Private Sub Form_Click()Private Sub Form_Click() Dim Str1 As String *12Dim Str1 As String *12 frmPoem.Width = 5500frmPoem.Width = 5500 frmPoem.Height = 1500frmPoem.Height = 1500 frmPoem.Caption = "frmPoem.Caption = " 春晓春晓 "" frmPoem.FontName = "frmPoem.FontName = " 楷体楷体 _GB2312" _GB2312" frmPoem.FontSize = 20frmPoem.FontSize = 20 frmPoem.ClsfrmPoem.Cls Str1 = "Str1 = " 春眠不觉晓,处处闻啼鸟。春眠不觉晓,处处闻啼鸟。 "" frmPoem.Print Str1frmPoem.Print Str1 Str1 = "Str1 = " 夜来风雨声,花落知多少?夜来风雨声,花落知多少? "" frmPoem.Print Str1frmPoem.Print Str1End SubEnd Sub

Page 27: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2727页页

常量常量

定义:所谓常量就是事先设置的、在程序运定义:所谓常量就是事先设置的、在程序运行过程中值保持不变的数据。行过程中值保持不变的数据。

分类:分类:

常量

直接常量

符号常量

系统定义的符号常量

用户定义的符号常量

Page 28: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2828页页

常量(续)常量(续)

直接常量

字符串常量

数值常量

逻辑常量

日期常量

整数常量

货币常量

浮点常量

整型常量

长整型常量

十进制

十六进制

八进制

Page 29: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 2929页页

常量(续)常量(续)

类型说明符类型说明符

类型说明符 表示的数据类型 类型说明符 表示的数据类型$ 字符串型 ! 单精度浮点型% 整型 # 双精度浮点型& 长整型 @ 货币型

Page 30: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3030页页

变量变量

定义:在程序的运行过程中取值可以发生变定义:在程序的运行过程中取值可以发生变化的数据称为变量。化的数据称为变量。

声明变量的格式:声明变量的格式:Dim Dim 〈变量名〈变量名 11 〉[〉[ AsAs 〈类型〈类型 11 〉]〉] [,〈变量名[,〈变量名 22 〉[〉[ AsAs 〈类型〈类型 22 〉…]〉…]

变量赋值格式:变量赋值格式:[[ LetLet]〈变量名〉]〈变量名〉 == 〈表达式〉〈表达式〉

Page 31: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3131页页

2.3 2.3 运算符及表达式运算符及表达式

算术运算符算术运算符 定义:算术运算符是对数值型数据进行算术运算定义:算术运算符是对数值型数据进行算术运算

的运算符。的运算符。

算术运算 算术运算符 算术运算 算术运算符指数 ^ 整数除法 \

取负 - 取模 Mod

乘法 * 加法 +

浮点除法 / 减法 -

Page 32: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3232页页

关系运算符关系运算符

定义:关系运算符又称为比较运算符,用于定义:关系运算符又称为比较运算符,用于比较两个同类型表达式的值,比较的结果是比较两个同类型表达式的值,比较的结果是一个逻辑值,即真(一个逻辑值,即真( TrueTrue )或假()或假( FalseFalse ))。。关系运算符 测试关系 关系运算符 测试关系

= 相等 <= 小于或等于<>或>< 不相等 >= 大于或等于

< 小于 Li ke 比较样式> 大于 I s 比较对象变量

Page 33: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3333页页

字符串运算符字符串运算符

定义:字符串运算符(定义:字符串运算符( && 和和 ++ )可以用来连)可以用来连接两个字符串。接两个字符串。

例如:例如:"VB"& ""VB"& " 程序设计程序设计 " " 结果为结果为 "VB"VB 程序设计程序设计 ""

"VB"+ ""VB"+ " 程序设计程序设计 " " 结果为结果为 "VB"VB 程序设计程序设计 ""

Page 34: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3434页页

逻辑运算符逻辑运算符

定义:逻辑运算符用于连接关系表达式、逻定义:逻辑运算符用于连接关系表达式、逻辑常量、逻辑变量和函数等逻辑型数据,构辑常量、逻辑变量和函数等逻辑型数据,构成逻辑表达式。成逻辑表达式。

逻辑运算符逻辑运算符 NotNot 、、 AndAnd 、、 OrOr 的运算规则的运算规则

操作数X的值 操作数Y的值 Not X X And Y X Or Y

TRUE TRUE FALSE TRUE TRUE

TRUE FALSE FALSE FALSE TRUE

FALSE TRUE TRUE FALSE TRUE

FALSE FALSE TRUE FALSE FALSE

Page 35: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3535页页

2.4 2.4 内部函数内部函数

函数是函数是 VBVB 的一个重要组成部分,的一个重要组成部分, VBVB 为用户提供为用户提供了丰富的内部函数,其一般格式为:了丰富的内部函数,其一般格式为:函数名(〈参数〉)函数名(〈参数〉)

说明:说明: 每个函数都有一个函数名,函数名的后面是一对括号,每个函数都有一个函数名,函数名的后面是一对括号,括号中是相应函数的参数;括号中是相应函数的参数;

每个函数都具有一定的功能,通常都有一个返回值。每个函数都具有一定的功能,通常都有一个返回值。

例如,函数例如,函数 AbsAbs 的功能是计算某个数值的绝对值,并返回的功能是计算某个数值的绝对值,并返回该值,该值, AbsAbs (( -20-20 )的返回值是)的返回值是 2020 (即(即 -20-20 的绝对值)的绝对值)。。

Page 36: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3636页页

输入函数输入函数

一般格式:一般格式:InputBoxInputBox 〔〈〔〈 PromptPrompt 〉[〉[ ,, 〈〈 TitleTitle 〉]〉] [[ ,, 〈〈 DefaultDefault 〉][〉][ ,, 〈〈 XposXpos 〉〉 ,, 〈〈 YposYpos 〉〉]]

[[ ,, 〈〈 HelpfileHelpfile 〉〉 ,, 〈〈 ContextContext 〉]〕〉]〕 功能:产生一个输入对话框,显示提示信息功能:产生一个输入对话框,显示提示信息

及文本输入框,等待用户输入文本数据,并及文本输入框,等待用户输入文本数据,并返回文本框内所输入的数据。返回文本框内所输入的数据。

Page 37: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3737页页

输入函数的参数说明输入函数的参数说明 PromptPrompt (提示):一个字符串表达式,长度不超过(提示):一个字符串表达式,长度不超过 10241024 字符。该参数字符。该参数

用于在对话框内显示输入提示信息,提醒用户输入相应的数据。如果 用于在对话框内显示输入提示信息,提醒用户输入相应的数据。如果 Prompt Prompt 包含多个行,可以在各行之间用回车符 包含多个行,可以在各行之间用回车符 (Chr(13))(Chr(13)) 、换行符 、换行符 ((Chr(10)) Chr(10)) 或回车换行符的组合 或回车换行符的组合 (Chr(13) & Chr(10)) (Chr(13) & Chr(10)) 来分隔。来分隔。

TitleTitle (标题):一个字符串表达式,表示对话框的标题。该参数省略(标题):一个字符串表达式,表示对话框的标题。该参数省略时,系统会将应用程序名放入标题栏中。时,系统会将应用程序名放入标题栏中。

DefaultDefault (默认):一个字符串表达式,作为输入文本框的默认文本。(默认):一个字符串表达式,作为输入文本框的默认文本。该参数省略时,最初的输入文本框是空白的。该参数省略时,最初的输入文本框是空白的。

XposXpos (( XX 坐标),坐标), YposYpos (( YY 坐标):两个成对出现的数值表达式,坐标):两个成对出现的数值表达式,分别用于指定对话框与屏幕左边界的距离(分别用于指定对话框与屏幕左边界的距离( XposXpos )及与屏幕上边界的)及与屏幕上边界的距离(距离( YposYpos )。这一对参数省略时,系统将在屏幕中心线向下约三分)。这一对参数省略时,系统将在屏幕中心线向下约三分之一处显示对话框。之一处显示对话框。

HelpfileHelpfile (帮助文件),(帮助文件), ContextContext (帮助上下文编号):两个成对出现(帮助上下文编号):两个成对出现的参数,用于提供上下文帮助功能。帮助文件的文件名由 “的参数,用于提供上下文帮助功能。帮助文件的文件名由 “ Helpfile” Helpfile” 参数指定,帮助主题的上下文编号由“参数指定,帮助主题的上下文编号由“ Context”Context” 参数指定。参数指定。

Page 38: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3838页页

输入函数举例输入函数举例

【例【例 2-22-2 】编制一个小程序,运行界面如下】编制一个小程序,运行界面如下面的三个图所示。单击【个人信息输入】按面的三个图所示。单击【个人信息输入】按钮,可以弹出三个“个人信息输入”对话框钮,可以弹出三个“个人信息输入”对话框,用于输入用户的姓名、电话号码和,用于输入用户的姓名、电话号码和 E-mailE-mail地址。单击【个人信息输出】按钮,将输出地址。单击【个人信息输出】按钮,将输出用户信息。用户信息。

Page 39: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 3939页页

例例 2-22-2 的用户界面的用户界面

Page 40: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4040页页

例例 2-22-2 中窗体和命令按钮的属性设置中窗体和命令按钮的属性设置

窗体或控件 名称 Caption属性值窗体 frmInOut "个人信息的输入和显示"

命令按钮 cmdInput "个人信息输入"

命令按钮 cmdOutput "个人信息输出"

命令按钮 cmdExit "退出"

Page 41: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4141页页

例例 2-22-2 的程序代码的程序代码'' 声明变量声明变量 PnamePname ,, TelTel ,, EmailEmail ,以便在其后的事件过程中使用,以便在其后的事件过程中使用Dim PName As String, Tel As String, Email As StringDim PName As String, Tel As String, Email As StringPrivate Sub cmdInput_Click() 'Private Sub cmdInput_Click() ' 个人信息输入个人信息输入 '' 使用三个输入对话框,输入用户的姓名、电话号码和使用三个输入对话框,输入用户的姓名、电话号码和 E-mailE-mail 地址地址 PName = InputBox("PName = InputBox(" 请输入你的姓名请输入你的姓名 ", "", " 个人信息输入个人信息输入 ")") Tel = InputBox("Tel = InputBox(" 请输入你的电话号码请输入你的电话号码 ", "", " 个人信息输入个人信息输入 ")") Email = InputBox("Email = InputBox(" 请输入你的请输入你的 E-mailE-mail 地址地址 ", "", " 个人信息输入个人信息输入 ")")End SubEnd SubPrivate Sub cmdOutput_Click() 'Private Sub cmdOutput_Click() ' 个人信息输出个人信息输出 frmInOut.FontSize = 14frmInOut.FontSize = 14 frmInOut.ClsfrmInOut.Cls '' 在窗体上输出用户的个人信息在窗体上输出用户的个人信息 frmInOut.Print Space(2) + "frmInOut.Print Space(2) + " 姓名姓名 :" + PName:" + PName frmInOut.Print Space(2) + "frmInOut.Print Space(2) + " 电话电话 :" + Tel:" + Tel frmInOut.Print Space(2) + "E-mail:" + EmailfrmInOut.Print Space(2) + "E-mail:" + EmailEnd SubEnd SubPrivate Sub cmdExit_Click() 'Private Sub cmdExit_Click() ' 退出退出 EndEndEnd SubEnd Sub

'' 声明变量声明变量 PnamePname ,, TelTel ,, EmailEmail ,以便在其后的事件过程中使用,以便在其后的事件过程中使用Dim PName As String, Tel As String, Email As StringDim PName As String, Tel As String, Email As StringPrivate Sub cmdInput_Click() 'Private Sub cmdInput_Click() ' 个人信息输入个人信息输入 '' 使用三个输入对话框,输入用户的姓名、电话号码和使用三个输入对话框,输入用户的姓名、电话号码和 E-mailE-mail 地址地址 PName = InputBox("PName = InputBox(" 请输入你的姓名请输入你的姓名 ", "", " 个人信息输入个人信息输入 ")") Tel = InputBox("Tel = InputBox(" 请输入你的电话号码请输入你的电话号码 ", "", " 个人信息输入个人信息输入 ")") Email = InputBox("Email = InputBox(" 请输入你的请输入你的 E-mailE-mail 地址地址 ", "", " 个人信息输入个人信息输入 ")")End SubEnd SubPrivate Sub cmdOutput_Click() 'Private Sub cmdOutput_Click() ' 个人信息输出个人信息输出 frmInOut.FontSize = 14frmInOut.FontSize = 14 frmInOut.ClsfrmInOut.Cls '' 在窗体上输出用户的个人信息在窗体上输出用户的个人信息 frmInOut.Print Space(2) + "frmInOut.Print Space(2) + " 姓名姓名 :" + PName:" + PName frmInOut.Print Space(2) + "frmInOut.Print Space(2) + " 电话电话 :" + Tel:" + Tel frmInOut.Print Space(2) + "E-mail:" + EmailfrmInOut.Print Space(2) + "E-mail:" + EmailEnd SubEnd SubPrivate Sub cmdExit_Click() 'Private Sub cmdExit_Click() ' 退出退出 EndEndEnd SubEnd Sub

Page 42: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4242页页

消息(输出)函数消息(输出)函数 一般格式:一般格式:

MsgBoxMsgBox (〈(〈 PromptPrompt 〉[〉[ ,, 〈〈 ButtonsButtons 〉]〉] [[ ,, 〈〈 TitleTitle 〉][〉][ ,, 〈〈 HelpfileHelpfile 〉〉 ,, 〈〈 ContextContext 〉])〉])

功能:产生一个标准的功能:产生一个标准的 WindowsWindows 消息对话框,用于消息对话框,用于显示提示信息,并返回用户在对话框中的选择结果。显示提示信息,并返回用户在对话框中的选择结果。

PromptPrompt 、、 TitleTitle 、、 HelpfileHelpfile 和和 ContextContext 参数的含义和参数的含义和作用与作用与 InputBoxInputBox 函数的同名参数类似。函数的同名参数类似。

ButtonsButtons (按钮值)参数是一个整型数或符号常量,(按钮值)参数是一个整型数或符号常量,用于规定消息对话框中需要显示哪些按钮或图标,指用于规定消息对话框中需要显示哪些按钮或图标,指定哪个按钮作为默认按钮,以及采用怎样的等待模式定哪个按钮作为默认按钮,以及采用怎样的等待模式等。 等。

Page 43: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4343页页

消息(输出)函数(续)消息(输出)函数(续) ButtonsButtons (按钮值)参数的格式为:(按钮值)参数的格式为: [〈按钮类型〉][〈按钮类型〉] ++[〈图标类型〉][〈图标类型〉] ++[〈默认按钮〉][〈默认按钮〉] ++[〈等待模式〉][〈等待模式〉]

类别 数值 符号常量 描述0 VbOKOnl y “ ”显示 确定 按钮1 VbOKCancel “ ” “ ”显示 确定 和 取消 按钮2 VbAbortRetryI gnore “ ” “ ” “ ”显示 终止 、 重试 和 忽略 按钮3 VbYesNoCancel “ ” “ ” “ ”显示 是 、 否 和 取消 按钮4 VbYesNo “ ” “ ”显示 是 和 否 按钮5 VbRetryCancel “ ” “ ”显示 重试 和 取消 按钮16 vbCri t i cal “ ”显示危险 图标32 vbQuest i on “显示问号 ” 图标48 vbExcl amat i on “显示警告 ” 图标64 vbI nf ormat i on “显示信息 ” 图标0 vbDef aul tButton1 1规定第 个按钮是默认值

256 VbDef aul tButton2 2规定第 个按钮是默认值512 VbDef aul tButton3 3规定第 个按钮是默认值768 VbDef aul tButton4 4规定第 个按钮是默认值0 vbAppl i cat i onModal 应用程序强制返回

等待模式 4096 vbSystemModal 系统强制返回

图标类型

默认按钮

按钮类型

Page 44: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4444页页

消息(输出)函数举例消息(输出)函数举例 11

Answer1 = MsgBox(“Answer1 = MsgBox(“ 输入完毕输入完毕 ?”, vbYesNo + ?”, vbYesNo + _ vbQuestion, “_ vbQuestion, “ 消息对话框消息对话框 1”) 1”)

Page 45: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4545页页

消息(输出)函数举例消息(输出)函数举例 22

Answer2 = MsgBox(“Answer2 = MsgBox(“ 按确定或取消按钮继续 按确定或取消按钮继续 __

或取消本次安装或取消本次安装 ", vbOKCancel + _", vbOKCancel + _

vbInformation + vbDefaultButton2, vbInformation + vbDefaultButton2, __

""消息对话框消息对话框 2")2")

Page 46: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4646页页

消息(输出)函数举例消息(输出)函数举例 33

Answer3 = MsgBox("Answer3 = MsgBox(" 输入的数据必须大于输入的数据必须大于 0", 0", __

vbOKOnly + vbExclamation, _vbOKOnly + vbExclamation, _

""消息对话框消息对话框 3")3")

Page 47: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4747页页

格式输出函数格式输出函数 一般格式:一般格式:

Format$Format$ (〈(〈 expressionexpression 〉[,〈〉[,〈 formatformat 〉])〉]) 功能:功能: 按按 formatformat (格式字符串)所规定的格式输出(格式字符串)所规定的格式输出 expreexpre

ssionssion (数值表达式)的值。(数值表达式)的值。举例:举例:Format$(12345,"#######") Format$(12345,"#######") Format$(12345,"0000000")Format$(12345,"0000000")Format$(123.45,"###.##")Format$(123.45,"###.##")Format$(123.45,"$###.##")Format$(123.45,"$###.##")Format$(.123,"00.0%")Format$(.123,"00.0%")

Page 48: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4848页页

本书使用的其他函数本书使用的其他函数

函数格式 功能 函数举例 函数返回值Hex(x) 将十进制数x转换为十六进制数 Hex(123) 7BOct(x) 将十进制数x转换为八进制数 Oct(123) 173Str$(x) 将x的值转换为一个字符串 Str$(-12.6) "-12.6"Chr(x) 将ASCII码转换成相应的字符 Chr(13) 回车符Val(s) 将字符串s转换成数值 Val(“12.3”) 12.3CStr(x) 强制将表达式x转换成某种字符串 CStr(True) "True"

Cdate(x) 强制将表达式x转换成日期 Cdate("12-10-2004") #12/10/2004#Abs(x) 计算x的绝对值 Abs(-12) 12

Trim$(s) 删除字符串s左右两边的空白字符 Trim$(" abc ") "abc"Len(s) 返回字符串s的长度 Len("abcde") 5

Space(n) 返回由n个空格组成的字符串 Space(6) 含6个空格的字符串

Tab(n)与 Print # 语句或 Print 方法一起使用,对输出进行定位。参数n规定了在显示或打印列表中的下一个表达式之前移动的列数。

Tab(18)

作用:在显示或打印列表中的下一个表达式之前移动18列

IsDate(x) 判断表达式x是否可以转换成日期 IsDate("12-10-2004") TRUEIsNumeric(x) 判断表达式x的运算结果是否为数字 IsNumeric("123") TRUE

IIF(a,b,c) 判断逻辑表达式a的值,若为True则返回参数b的值,若为False则返回参数c的值。

IIF(3>5,"真","假") "假"

Page 49: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 4949页页

2.5 2.5 数组数组

定义:一组具有同一名字不同下标的变量称为数组。定义:一组具有同一名字不同下标的变量称为数组。 数组的定义和引用数组的定义和引用

格式:格式:DimDim 〈数组名〉(〈下标上界〉)〈数组名〉(〈下标上界〉) AsAs 〈类型名称〉或〈类型名称〉或DimDim 〈 数组名〉([〈下界 〈 数组名〉([〈下界 ToTo 〉]〈上界〉)〉]〈上界〉) AsAs 〈类型名称〉〈类型名称〉

控件数组控件数组 定义:控件数组是由一组类型相同的控件组成的,它们具定义:控件数组是由一组类型相同的控件组成的,它们具

有相同的名字,执行大致相同的操作,可以共享同样的事有相同的名字,执行大致相同的操作,可以共享同样的事件过程。件过程。

Page 50: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5050页页

2.5 2.5 数组(续)数组(续)

【例【例 2-32-3 】建立一个包含】建立一个包含 55 个单选按钮和一个单选按钮和一个文本框的窗体,如下图所示,单击其中的个文本框的窗体,如下图所示,单击其中的某个单选按钮可以调整文本框中字体的大小某个单选按钮可以调整文本框中字体的大小。。

Page 51: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5151页页

结束结束

Page 52: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5252页页

第 第 3 3 章章窗体和内部控件窗体和内部控件

Page 53: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5353页页

学习目标学习目标

掌握窗体的常用属性、方法和事件;掌握窗体的常用属性、方法和事件; 掌握内部控件的作用、常用属性设置方法、掌握内部控件的作用、常用属性设置方法、常用事件和方法的应用;常用事件和方法的应用;

学会使用窗体与控件设计简单的应用程序界学会使用窗体与控件设计简单的应用程序界面,编写简单的事件代码。面,编写简单的事件代码。

Page 54: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5454页页

3.1 3.1 窗体窗体

定义:窗体(定义:窗体( FormForm )就是显示在屏幕上的)就是显示在屏幕上的窗口,是用户完成各种操作的界面。窗口,是用户完成各种操作的界面。

窗体

控件元素

Page 55: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5555页页

窗体的常用属性窗体的常用属性 属性 作用

Name 设置窗体的标识名Caption 设置窗体标题栏上的文字Appearance 设置窗体在运行时是否以立体的效果显示AutoRedraw 设置窗体是否具有自动重画的功能BackColor 设置窗体的背景颜色BorderStyle 设置窗体的边框样式ControlBox 设置窗体是否具有关闭功能Enabled 决定运行时窗体是否响应用户事件ForeColor 设置窗体的前景色Font 设置窗体中输出的字符的特征,包括字体、字形、大小等Icon 设置窗体标题栏上的图标Left Left设置程序运行时窗体的水平位置Top 设置程序运行时窗体的垂直位置Height 设置窗体的高度Width 设置窗体的宽度Movable 布尔值,设置程序运行时窗体是否可以被用户改变位置MaxButton 布尔值,设置窗体的标题栏中是否具有最大化按钮MinButton 布尔值,设置窗体的标题栏中是否具有最小化按钮Picture 给窗体配上漂亮的位图StartUpPosition 用于控制窗体首次显示时的位置Visible 设置程序运行时窗体是否可见WindowsState 设置程序运行中窗体的最小化、最大化和原形这三种状态

Page 56: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5656页页

窗体的常用事件窗体的常用事件

事件 作用Cl i ck 当在窗口内没有其他控件的任何位置单击鼠标时触发Dbl Cl i ck 当在窗口内没有其他控件的任何位置双击鼠标时触发该事件Acti vate 在窗体由非活动窗体变为活动窗体时的瞬间被触发Deacti vate 在窗体由活动窗体变为非活动窗体时的瞬间被触发Load 当窗体被调入内存并显示在屏幕上时被触发Unl oad 程序运行后,关闭窗体时触发的事件MouseDown 当用户在对象上按下鼠标按钮时发生Resi ze 当窗体第一次显示或用户改变窗体的大小时触发该事件

Page 57: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5757页页

窗体的常用方法窗体的常用方法

方法 格式Pri nt Pri nt [〈对象〉]. [〈输出列表〉]Cl s Cl s[〈对象〉].Move Move [〈对象〉]. 〈左边距〉[,〈上边距〉[,〈宽度〉[,〈高度〉]]]Show Show[〈对象〉]. [〈模式〉]Hi de Hi de[〈对象〉].Ref resh Ref resh[〈对象〉].

Page 58: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5858页页

窗体的生命周期窗体的生命周期

窗体从创建到卸载的“生命历程”,即窗体窗体从创建到卸载的“生命历程”,即窗体的生命周期。的生命周期。

语句 格式Load(装载)语句 Load 〈对象〉Unl oad(卸载)语句 Unl oad 〈对象〉End(结束)语句 End

Page 59: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 5959页页

应用实例应用实例

【例【例 3-13-1 】编写一个程序,界面如下图所示】编写一个程序,界面如下图所示。当程序运行时,在窗体上加载一幅图片;。当程序运行时,在窗体上加载一幅图片;当单击鼠标左键时,窗体加宽;当双击鼠标当单击鼠标左键时,窗体加宽;当双击鼠标左键时,窗体变窄;单击 “显示” 按钮,左键时,窗体变窄;单击 “显示” 按钮,在窗体上显示“在窗体上显示“ welcome”welcome” ;单击按钮“清;单击按钮“清除”,清除窗体上的 “除”,清除窗体上的 “ welcome”welcome” ;单击按;单击按钮“移动”,使窗体在屏幕上位置发生移动钮“移动”,使窗体在屏幕上位置发生移动。。

Page 60: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6060页页

应用实例应用实例

【例【例 3-23-2 】设计一个程序,该程序包含两个窗】设计一个程序,该程序包含两个窗体(体( frm1frm1 和“登录对话框”窗体和“登录对话框”窗体 frmloginfrmlogin )),要求首先出现窗体,要求首先出现窗体 frm1frm1 ,在窗体,在窗体 frm1frm1 中可中可以控制窗体以控制窗体 frmloginfrmlogin 的显示和隐藏,如下图所的显示和隐藏,如下图所示。示。

Page 61: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6161页页

3.2 3.2 内部控件的基本概念内部控件的基本概念

定义:控件是包含在窗体中的对象,它与窗定义:控件是包含在窗体中的对象,它与窗体一起组成了应用程序的界面。体一起组成了应用程序的界面。

控件分类:内部控件(又称一般控件)和控件分类:内部控件(又称一般控件)和 AcActiveXtiveX 控件和可插入对象。控件和可插入对象。

Page 62: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6262页页

控件工具箱控件工具箱

PointerPointer 指针指针LabelLabel 标签标签

FrameFrame 框架 框架 CheckBoxCheckBox 复选框复选框

ComboBoxComboBox 组组合框合框 H.ScrollBarH.ScrollBar 水平水平滚动条滚动条 TimerTimer 计时器计时器

DirListBoxDirListBox 文件框 文件框 SShapehape 图形 图形

ImageImage 图像图像 OLEOLE 控件控件

PicturePicture 图片框图片框TextBoxTextBox 文本框文本框CommandButtonCommandButton 命令按钮命令按钮OptionButtonOptionButton 单选按钮单选按钮ListBoxListBox 列表框列表框V.ScrollBarV.ScrollBar 垂直滚动条垂直滚动条DriveListBoxDriveListBox 驱动器列表框驱动器列表框FileListBoxFileListBox 文件列表框文件列表框LineLine 线条线条DateDate数据控件数据控件

Page 63: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6363页页

3.3 3.3 文本框、标签和命令按钮文本框、标签和命令按钮

标签 文本框

命令按钮

Page 64: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6464页页

文本框文本框 文本框(文本框( TextBoxTextBox ):用于接收用户在框内输入的):用于接收用户在框内输入的信息,或显示由程序提供的信息,是信息,或显示由程序提供的信息,是 WindowsWindows 操操作系统下进行人机对话的常用元素。作系统下进行人机对话的常用元素。

常用属性常用属性

常用事件和方法:常用事件和方法: ChangeChange 事件、事件、 KeyPressKeyPress 事件、事件、SetFocusSetFocus 方法。方法。

属性 作用Name 名称。在程序代码中使用,默认为TextX(X=1,2,3 …, )。Text 文本属性。用来设置文本框中的文本MaxLength 用于指定用户输入字符的最大长度Mul ti Li ne 设置控件是否可以接受和显示多行文本Al i gnment 设置控件中文本的左、右和居中三种对齐方式Scrol l Bars 设置控件是否具有水平或垂直滚动条Locked 设置文本框内容在运行时是否可以被用户编辑PasswordChar 以特定的字符来代替控件中的文本字符

Page 65: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6565页页

标签标签 标签(标签( LabelLabel ):常用作其他控件的说明,也能显):常用作其他控件的说明,也能显示文本。示文本。

常用属性:除了掌握常用属性:除了掌握 NameName 、、 CaptionCaption 、、 AlignmeAlignmentnt外,还须掌握以下属性。外,还须掌握以下属性。

常用事件和方法:常用事件和方法: ClickClick 事件、事件、 DblClickDblClick 事件和事件和MoveMove 方法。方法。

属性 作用AutoSi ze 自动缩放,即大小自适应属性WordWrap 当一行文本过长时自动换行BackStyl e 设置标签是否透明BorderStyl e 设置标签的边界风格Font 设置字体FontCol or 设置字体颜色ForeCol or 返回或设置标签控件中文本或图形的前景颜色

Page 66: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6666页页

命令按钮命令按钮 命令按钮(命令按钮( CommandButtonCommandButton ):运行时用户单击):运行时用户单击此按钮,可执行一段程序代码,完成某种指定的操此按钮,可执行一段程序代码,完成某种指定的操作。作。

常用属性:除掌握共同的基本属性外,还应掌握如常用属性:除掌握共同的基本属性外,还应掌握如下几个重要属性:下几个重要属性:

常用事件:常用事件: ClickClick 事件。事件。

属性 作用Cancel True ESC用于指定窗体中命令按钮是否为取消按钮,取值 时响应 键。Defaul t 用于设置按钮是否为缺省命令按钮。Styl e 0 1设置命令按钮的外观风格。 标准风格 , 图形风格。Pi cture styl e 1- Graphi cal为按钮装入一幅示意图形,只有当 属性设为 时可用。Di sabl ePi cture 用于设置命令按钮失效时显示的图形。DownPi cture 用于设置命令按钮被按下时显示的图形。

Page 67: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6767页页

应用实例应用实例

【例【例 3-33-3 】使用文本框控件编写一个程序,】使用文本框控件编写一个程序,界面如下图所示。要求将左边文本框中选定界面如下图所示。要求将左边文本框中选定的内容在右边文本框中进行“剪切”、“复的内容在右边文本框中进行“剪切”、“复制”和“粘贴”操作。制”和“粘贴”操作。

Page 68: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6868页页

应用实例应用实例

【例【例 3-43-4 】设计一个窗体,界面如下图所示】设计一个窗体,界面如下图所示。当单击窗体时,可以让前景颜色为黑色的。当单击窗体时,可以让前景颜色为黑色的Lbl1Lbl1 控件移动,与前景颜色为红色的控件移动,与前景颜色为红色的 Lbl2Lbl2控件中的文字形成阴影文字。控件中的文字形成阴影文字。

Page 69: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 6969页页

3.4 3.4 图片框和图像框图片框和图像框

常用属性和函数:常用属性和函数: PicturePicture 属性属性 LoadPictureLoadPicture 函数函数 ImageImage 属性属性 CurrentX CurrentX 和和 CurrentYCurrentY 属性属性 StretchStretch 属性属性 AutosizeAutosize 属性属性

Page 70: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7070页页

应用实例应用实例

【例【例 3-53-5 】 编程实现从一个图片框向另一个】 编程实现从一个图片框向另一个图片框复制图片,复制分为图片框复制图片,复制分为 PicturePicture 属性复属性复制(如下左图)和制(如下左图)和 ImageImage 属性复制(如下右属性复制(如下右图),注意它们的不同之处。图),注意它们的不同之处。

Page 71: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7171页页

3.5 3.5 单选按钮、复选框和框架单选按钮、复选框和框架

单选按钮(单选按钮( OptionButtomOptionButtom )) :: 用于在多个用于在多个选项中选择一个,通常由多个单选按钮组成选项中选择一个,通常由多个单选按钮组成选项组,这些按钮中在同一时刻只能选择一选项组,这些按钮中在同一时刻只能选择一个;个;

复选框(复选框( CheckBoxCheckBox )) :: 用来给用户提供多用来给用户提供多种选择;种选择;

框架(框架( FrameFrame )) :: 一个容器,可以对窗体上一个容器,可以对窗体上的对象如单选按钮和复选框进行分类。的对象如单选按钮和复选框进行分类。

Page 72: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7272页页

单选按钮、复选框和框架单选按钮、复选框和框架

单选按钮单选按钮

复选框复选框

框架框架

Page 73: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7373页页

单选按钮和复选框单选按钮和复选框 常用属性:常用属性: AlignmentAlignment 属性、属性、 ValueValue 属性和属性和 StyleStyle 属性属性

。。

常用事件:常用事件: ClickClick 事件。事件。 主要方法:主要方法: SetFocusSetFocus 方法。方法。

Page 74: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7474页页

框架框架 框架(框架( FrameFrame )控件,又称为容器,它可以将一)控件,又称为容器,它可以将一

个窗体中的各种功能进一步进行分类。个窗体中的各种功能进一步进行分类。

常用属性:常用属性: CaptionCaption 属性、属性、 EnabledEnabled 属性、属性、 VisibleVisible属性。属性。

常用事件:常用事件: ClickClick 与与 DblClickDblClick 事件。事件。

Page 75: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7575页页

应用实例应用实例

【例【例 3-63-6 】使用单选按钮、复选框及框架控】使用单选按钮、复选框及框架控件来编写一个程序,实现对标签控件的标题件来编写一个程序,实现对标签控件的标题文字进行效果和字型的选择设置。文字进行效果和字型的选择设置。

程序界面及运行结果程序界面及运行结果

Page 76: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7676页页

3.6 3.6 列表框和组合框列表框和组合框

列表框(列表框( ListBoxListBox ):用来列出可供用户选):用来列出可供用户选择的项目列表。择的项目列表。

组合框(组合框( ComboBoxComboBox ):是文本框和列表框):是文本框和列表框的组合方式,它包含一个文本框和一个列表的组合方式,它包含一个文本框和一个列表框。框。

列表框列表框 组合框组合框

Page 77: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7777页页

列表框和组合框列表框和组合框 列表框和组合框的常用属性:列表框和组合框的常用属性: ListList 属性、属性、 ListCouListCou

ntnt 属性、属性、 SortedSorted 属性、属性、 TextText 属性。属性。 列表框特有的重要属性:列表框特有的重要属性: SelectedSelected 属性、属性、 SelCountSelCount

属性、属性、 StyleStyle 属性。属性。 组合框特有的重要属性:组合框特有的重要属性: StyleStyle (外观)属性。(外观)属性。 列表框的常用事件:列表框的常用事件: ClickClick 事件、事件、 DbClickDbClick 事件。事件。 组合框的常用事件:组合框的常用事件: ClickClick 事件、事件、 DbClickDbClick 事件(事件(

Style=1Style=1 )、)、 GotFocusGotFocus 事件、事件、 LostFocusLostFocus 事件、事件、 CChangehange 事件。事件。

列表框和组合框的常用方法:列表框和组合框的常用方法: AddItemAddItem 方法、方法、 CleClearar 方法、方法、 RemoveItemRemoveItem 方法。方法。

Page 78: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7878页页

应用实例应用实例

【例【例 3-73-7 】编写一个程序,当用户在组合框中单击】编写一个程序,当用户在组合框中单击“歌手”列表(“歌手”列表( cbo1cbo1 )中的某位歌手时,图像框)中的某位歌手时,图像框中将显示该歌手的照片;如果用户在“歌曲”列表中将显示该歌手的照片;如果用户在“歌曲”列表框(框( lst1lst1 )选择的歌曲是组合框中所选择的那位歌)选择的歌曲是组合框中所选择的那位歌手演唱的话,在文本框中显示“歌手”和“歌名”手演唱的话,在文本框中显示“歌手”和“歌名”,同时由标签(,同时由标签( lbl3lbl3 )显示正确或错误的提示信息)显示正确或错误的提示信息。。

用户界面

Page 79: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 7979页页

应用实例应用实例

【例【例 3-83-8 】使用列表框、组合框、标签、文本框和】使用列表框、组合框、标签、文本框和命令按钮设计一个“选课”程序。要求在姓名文本命令按钮设计一个“选课”程序。要求在姓名文本框中输入姓名,同时选中相应班级、性别或课程,框中输入姓名,同时选中相应班级、性别或课程,当点击“添加”按钮时,将该信息添加到列表框中当点击“添加”按钮时,将该信息添加到列表框中,在列表框中可以“去除”选中信息和“清空”所,在列表框中可以“去除”选中信息和“清空”所有信息。有信息。

程序界面及运行结果

Page 80: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8080页页

3.7 3.7 滚动条滚动条

滚动条(滚动条( ScrollBarScrollBar ):用来帮助观察数据或):用来帮助观察数据或确定位置,同时也可以作为数据输入的工具。确定位置,同时也可以作为数据输入的工具。

分类:水平滚动条(分类:水平滚动条( HscrollBarHscrollBar )和垂直滚动)和垂直滚动条(条( VscrollBarVscrollBar )。)。

重要属性:重要属性: ValueValue 属性、属性、 MaxMax 和和 MinMin 属性、属性、SmallChangeSmallChange 属性、属性、 LargeChangeLargeChange 属性。属性。

主要事件:主要事件: ScrollScroll 和和 ChangeChange 事件。事件。

Page 81: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8181页页

应用实例应用实例

【例【例 3-93-9 】我们通过一个水平滚动条的滚动】我们通过一个水平滚动条的滚动改变文本框中显示的文字的大小。改变文本框中显示的文字的大小。

程序界面

Page 82: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8282页页

3.8 3.8 计时器计时器

计时器(计时器( TimerTimer )控件是在应用程序中用来)控件是在应用程序中用来处理按一定时间间隔(处理按一定时间间隔( IntervalInterval )触发事件)触发事件的控件。在运行时不可见。的控件。在运行时不可见。

常用属性:常用属性: Enabled Enabled 属性、属性、 IntervalInterval 属性。属性。 常用事件:常用事件: TimerTimer 事件。事件。

Page 83: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8383页页

3.9 3.9 直线和形状直线和形状

直线直线 直线(直线( LineLine )控件用于画直线,应用程序能够控制)控件用于画直线,应用程序能够控制 LineLine

控件的位置、长度、颜色及线条风格,适用于界面设计控件的位置、长度、颜色及线条风格,适用于界面设计、显示和打印。、显示和打印。

直线控件的常用属性:直线控件的常用属性: X1X1 和和 Y1Y1 属性、属性、 X2X2 和和 Y2Y2 属性属性、、 BorderColorBorderColor 属性、属性、 BorderStyleBorderStyle 属性。属性。

形状形状 形状(形状( ShapeShape )控件可以用来画矩形、正方形、椭圆、)控件可以用来画矩形、正方形、椭圆、圆、圆角矩形及圆角正方形。圆、圆角矩形及圆角正方形。

形状控件的常用属性:形状控件的常用属性: ShapeShape 属性、属性、 FillStyleFillStyle 属性。属性。

Page 84: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8484页页

结束结束

Page 85: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8585页页

第 第 4 4 章章Visual BasicVisual Basic 程序结构程序结构

Page 86: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8686页页

学习目标学习目标

掌握条件语句的结构特点和使用方法;掌握条件语句的结构特点和使用方法; 掌握多分支结构选择语句的语法特点和使用掌握多分支结构选择语句的语法特点和使用

方法;方法; 掌握循环结构控制语句的语法特点和使用方掌握循环结构控制语句的语法特点和使用方

法;法; 掌握其他常用语句的使用方法。掌握其他常用语句的使用方法。

Page 87: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8787页页

4.1 4.1 语句描述符号约定语句描述符号约定

“ “ []”:表示它括起来的部分是可选项[]”:表示它括起来的部分是可选项。。

“ “ 〈〉”:表示它括起来的部分是必选项〈〉”:表示它括起来的部分是必选项,表示语言中的一个基本单位。也就是说这,表示语言中的一个基本单位。也就是说这些内容是必须出现在语法要求中的。些内容是必须出现在语法要求中的。

““{}”{}” 和“和“ |”|” :表示它括起来的用符号“:表示它括起来的用符号“ |”|”间隔开的多个部分只能选择其中一个。间隔开的多个部分只能选择其中一个。

“…”“…” :表示它前面的内容可以重复使用。:表示它前面的内容可以重复使用。

Page 88: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8888页页

4.2 4.2 条件语句条件语句

单行单行 IFIF 语句语句 单行单行 IFIF 语句的一般格式语句的一般格式IfIf 〈条件〉〈条件〉 ThenThen 〈语句序列〈语句序列 11 〉〉[[ ElseElse 〈语句序列〈语句序列 22 〉]〉] 单行单行 IFIF 语句的执行过程语句的执行过程

Page 89: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 8989页页

4.2 4.2 条件语句(续)条件语句(续)

块块 IFIF 语句语句 块块 IfIf 语句的格式语句的格式If If 〈条件〉〈条件〉 ThenThen

〈语句序列〈语句序列 11 〉〉[[ ElseElse

〈语句序列〈语句序列 22 〉]〉]End IfEnd If 块块 IfIf 语句的执行过程语句的执行过程 块块 IfIf 语句的执行过程与单行语句的执行过程与单行 IFIF 语句类似。语句类似。

Page 90: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9090页页

应用实例应用实例

【例【例 4-14-1 】输入某会员的积分,并用变量】输入某会员的积分,并用变量 ScScoreore 存储,如果积分低于存储,如果积分低于 1000010000 分,输出“分,输出“普通会员”;如果积分大于等于普通会员”;如果积分大于等于 1000010000 分,分,输出“高级会员”。输出“高级会员”。

程序代码:程序代码:Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员""End SubEnd Sub

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员""End SubEnd Sub

Page 91: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9191页页

应用实例应用实例

例例 4-24-2 】输入某会员的积分,并用变量】输入某会员的积分,并用变量 ScoreScore 存储存储,如果积分低于,如果积分低于 1000010000 分,输出“普通会员”和“分,输出“普通会员”和“不能打折”两行文字;如果积分大于等于不能打折”两行文字;如果积分大于等于 1000010000 分分,输出“高级会员” 和“可以打折”两行文字。,输出“高级会员” 和“可以打折”两行文字。

程序代码:程序代码:Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 ": Print "": Print " 不能打折不能打折 " Else " Else __ Print "Print " 高级会员高级会员 ": Print "": Print " 可以打折可以打折 ""End SubEnd Sub

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 ": Print "": Print " 不能打折不能打折 " Else " Else __ Print "Print " 高级会员高级会员 ": Print "": Print " 可以打折可以打折 ""End SubEnd Sub

Page 92: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9292页页

应用实例应用实例 【例【例 4-34-3 】将例】将例 4-14-1 中的单行中的单行 IFIF 语句用块语句用块 IfIf 语句表示如下语句表示如下

::

【例【例 4-44-4 】将例】将例 4-24-2 中的单行中的单行 IFIF 语句用块语句用块 IfIf 语句表示如下语句表示如下::

If Score < 10000 Then If Score < 10000 Then Print "Print " 普通会员普通会员 " " Else Else Print "Print " 高级会员高级会员 ""End IfEnd If

If Score < 10000 Then If Score < 10000 Then Print "Print " 普通会员普通会员 " " Else Else Print "Print " 高级会员高级会员 ""End IfEnd If

If Score < 10000 ThenIf Score < 10000 Then Print "Print " 普通会员普通会员 "" Print "Print " 不能打折不能打折 ""ElseElse Print "Print " 高级会员高级会员 "" Print "Print " 可以打折可以打折 ""End IfEnd If

If Score < 10000 ThenIf Score < 10000 Then Print "Print " 普通会员普通会员 "" Print "Print " 不能打折不能打折 ""ElseElse Print "Print " 高级会员高级会员 "" Print "Print " 可以打折可以打折 ""End IfEnd If

Page 93: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9393页页

4.3 4.3 选择语句选择语句

Select CaseSelect Case 语句的格式语句的格式Select Case Select Case 〈测试表达式〉〈测试表达式〉

[[ CaseCase 〈表达式表〈表达式表 11 〉〉 〈语句序列〈语句序列 11 〉]〉]

[[ CaseCase 〈表达式表〈表达式表 22 〉〉 〈语句序列〈语句序列 22 〉]〉] …… ……

[[ Case ElseCase Else

〈语句序列〈语句序列 n+1n+1 〉]〉]End SelectEnd Select

Page 94: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9494页页

4.3 4.3 选择语句(续)选择语句(续)

Select CaseSelect Case 语句的执行过程语句的执行过程 计算测试表达式的值。计算测试表达式的值。 将测试表达式的值与将测试表达式的值与 CaseCase 子句中的“表达式表子句中的“表达式表

”中的每一个值逐一进行比较。如果与其中的一”中的每一个值逐一进行比较。如果与其中的一个值匹配,则执行该子句中的语句序列。如果不个值匹配,则执行该子句中的语句序列。如果不止一个止一个 CaseCase 子句的值与测试表达式相匹配,则子句的值与测试表达式相匹配,则只执行第一个匹配的只执行第一个匹配的 CaseCase 子句中的语句序列。子句中的语句序列。如果在“表达式表”中没有一个值与测试表达式如果在“表达式表”中没有一个值与测试表达式匹配,则执行匹配,则执行 Case ElseCase Else子句中的语句序列。子句中的语句序列。

Page 95: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9595页页

应用实例应用实例

【例【例 4-54-5 】输入某会员的积分,并用变量】输入某会员的积分,并用变量 ScScoreore 存储,如果积分低于存储,如果积分低于 1000010000 分,输出“分,输出“普通会员”;如果积分大于等于普通会员”;如果积分大于等于 1000010000 分、分、小于等于小于等于 5000050000 分,输出“银牌会员”;如分,输出“银牌会员”;如果积分大于果积分大于 5000050000 分,输出“金牌会员”。分,输出“金牌会员”。

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") Select Case ScoreSelect Case Score Case Is < 10000Case Is < 10000 Print "Print " 普通会员普通会员 "" Case Is <= 50000Case Is <= 50000 Print "Print " 银牌会员银牌会员 "" Case ElseCase Else Print "Print " 金牌会员金牌会员 "" End SelectEnd SelectEnd SubEnd Sub

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") Select Case ScoreSelect Case Score Case Is < 10000Case Is < 10000 Print "Print " 普通会员普通会员 "" Case Is <= 50000Case Is <= 50000 Print "Print " 银牌会员银牌会员 "" Case ElseCase Else Print "Print " 金牌会员金牌会员 "" End SelectEnd SelectEnd SubEnd Sub

Page 96: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9696页页

4.4 4.4 循环语句循环语句

For…NextFor…Next 循环循环 For…NextFor…Next 语句的格式语句的格式ForFor 〈循环变量〉〈循环变量〉 == 〈初值〉 〈初值〉 To To 〈终值〉 [〈终值〉 [ Step Step 〈步长〉]〈步长〉]

〈循环体〉〈循环体〉 [[ Exit ForExit For ]]Next Next [〈循环变量〉][〈循环变量〉]

For…NextFor…Next 语句的执行过程语句的执行过程

Page 97: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9797页页

应用实例应用实例

【例【例 4-64-6 】输入】输入 55 个会员的积分,如果积分个会员的积分,如果积分低于低于 1000010000 分,输出“第分,输出“第 II 个会员是:普通个会员是:普通会员”字样;如果积分大于等于会员”字样;如果积分大于等于 1000010000 分,分,输出“第输出“第 II 个会员是:高级会员”字样(个会员是:高级会员”字样( I=I=11 ,, 22 ,, 33 ,, 44 ,, 55 )。)。

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Dim I As IntegerDim I As Integer For I = 1 To 5For I = 1 To 5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then If Score < 10000 Then Print "Print " 第第 " + Str$(I) + "" + Str$(I) + " 个会员是个会员是 :: 普通会员普通会员 "" ElseElse Print "Print " 第第 " + Str$(I) + "" + Str$(I) + " 个会员是个会员是 :: 高级会员高级会员 "" End IfEnd If Next INext IEnd SubEnd Sub

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Dim I As IntegerDim I As Integer For I = 1 To 5For I = 1 To 5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then If Score < 10000 Then Print "Print " 第第 " + Str$(I) + "" + Str$(I) + " 个会员是个会员是 :: 普通会员普通会员 "" ElseElse Print "Print " 第第 " + Str$(I) + "" + Str$(I) + " 个会员是个会员是 :: 高级会员高级会员 "" End IfEnd If Next INext IEnd SubEnd Sub

Page 98: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9898页页

Do…LoopDo…Loop循环循环 前测型前测型 Do…LoopDo…Loop 循环循环

特点:先判断条件,根据条件决定是否执行循环特点:先判断条件,根据条件决定是否执行循环体,循环的最少执行次数为体,循环的最少执行次数为 00 。。

一般格式:一般格式:Do Do [{[{WhileWhile || UntilUntil }〈循环条件〉]}〈循环条件〉]

〈循环体〉〈循环体〉 [[ Exit DoExit Do]]LoopLoop

执行过程:执行过程:

Page 99: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 9999页页

应用实例应用实例

【例【例 4-74-7 】使用】使用 Do While … LoopDo While … Loop 循环,输循环,输入入 55 个会员的积分,如果积分低于个会员的积分,如果积分低于 1000010000 分分,输出“普通会员”;如果积分大于等于,输出“普通会员”;如果积分大于等于 1010000000 分,输出“高级会员”分,输出“高级会员”

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Dim I As IntegerDim I As Integer I=1I=1 Do While I<=5Do While I<=5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print “If Score < 10000 Then Print “ 普通会员” 普通会员” Else _Else _ Print “Print “ 高级 会员高级 会员 "" I=I+1I=I+1 LoopLoopEnd SubEnd Sub

Private Sub Form_Activate()Private Sub Form_Activate() Dim Score As LongDim Score As Long Dim I As IntegerDim I As Integer I=1I=1 Do While I<=5Do While I<=5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print “If Score < 10000 Then Print “ 普通会员” 普通会员” Else _Else _ Print “Print “ 高级 会员高级 会员 "" I=I+1I=I+1 LoopLoopEnd SubEnd Sub

Page 100: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 100100页页

应用实例应用实例

【例【例 4-84-8 】使用】使用 Do Until … LoopDo Until … Loop 循环改写循环改写上例的循环语句。上例的循环语句。

I=1I=1Do Until I>5Do Until I>5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员""I=I+1I=I+1LoopLoop

I=1I=1Do Until I>5Do Until I>5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员""I=I+1I=I+1LoopLoop

Page 101: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 101101页页

Do…LoopDo…Loop循环(续)循环(续)

后测型后测型 Do…LoopDo…Loop 循环循环 特点:先执行循环体,然后判断条件,根据条件决定特点:先执行循环体,然后判断条件,根据条件决定

是否继续执行循环体,循环的最少执行次数为是否继续执行循环体,循环的最少执行次数为 11 。。 一般格式:一般格式:

DoDo

 〈循环体〉 〈循环体〉 [[ Exit DoExit Do]]Loop Loop [{[{WhileWhile || Until Until }〈循环条件〉]}〈循环条件〉]

执行过程:执行过程:

Page 102: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 102102页页

【例【例 4-94-9 】使用】使用 Do …Loop WhileDo …Loop While 循环改写上例的循环语句。循环改写上例的循环语句。

【例【例 4-104-10 】使用】使用 Do …Loop UntilDo …Loop Until 循环改写上例的循环语句。循环改写上例的循环语句。

I=1I=1Do Do Score = InputBox(“ Score = InputBox(“ 请输入会员积分请输入会员积分 :”):”) If Score < 10000 Then Print “ If Score < 10000 Then Print “ 普通会员” 普通会员” Else Print “Else Print “ 高级会高级会员”员” I=I+1I=I+1Loop While I<=5Loop While I<=5

I=1I=1Do Do Score = InputBox(“ Score = InputBox(“ 请输入会员积分请输入会员积分 :”):”) If Score < 10000 Then Print “ If Score < 10000 Then Print “ 普通会员” 普通会员” Else Print “Else Print “ 高级会高级会员”员” I=I+1I=I+1Loop While I<=5Loop While I<=5

I=1I=1Do Do Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员"" I=I+1I=I+1Loop Until I>5Loop Until I>5

I=1I=1Do Do Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员"" I=I+1I=I+1Loop Until I>5Loop Until I>5

应用实例应用实例

Page 103: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 103103页页

While…wendWhile…wend 循环循环 一般格式:一般格式:

WhileWhile 〈循环条件〉〈循环条件〉〈循环体〉〈循环体〉

WendWend

【例【例 4-114-11 】使用】使用 While…WendWhile…Wend 循环改写上例的循环循环改写上例的循环语句。语句。

I=1I=1While I<=5While I<=5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员"" I=I+1I=I+1WendWend

I=1I=1While I<=5While I<=5 Score = InputBox("Score = InputBox(" 请输入会员积分请输入会员积分 :"):") If Score < 10000 Then Print "If Score < 10000 Then Print " 普通会员普通会员 " Else Print "" Else Print " 高级会员高级会员"" I=I+1I=I+1WendWend

Page 104: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 104104页页

4.5 4.5 其他常用语句其他常用语句

注释语句注释语句 注释是一些说明性的语句,它本身并不被执行,注释是一些说明性的语句,它本身并不被执行,

编译程序或解释程序遇到注释时会简单地跳过注编译程序或解释程序遇到注释时会简单地跳过注释,就像根本没有它们那样。释,就像根本没有它们那样。

在在 VB 6.0VB 6.0 的代码中加入注释的方法:在注释文字的代码中加入注释的方法:在注释文字前放上一个英文单引号(前放上一个英文单引号( '' )。)。

语句分隔语句分隔 如果想在一行上写上多条语句,需要使用冒号将如果想在一行上写上多条语句,需要使用冒号将

各条语句隔开。各条语句隔开。

Page 105: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 105105页页

4.5 4.5 其他常用语句(续)其他常用语句(续)

续行符续行符 使用续行符可以将一条语句书写在多行上。使用续行符可以将一条语句书写在多行上。 方法:在未书写完的每一行的末尾都放上一个空方法:在未书写完的每一行的末尾都放上一个空

格和一个下划线“格和一个下划线“ _”_” ,然后在下一行继续书写,然后在下一行继续书写语句。语句。

程序结束程序结束 EndEnd 语句用于结束一个程序的执行。语句用于结束一个程序的执行。

暂停语句暂停语句 StopStop 语句暂停程序的执行。语句暂停程序的执行。

Page 106: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 106106页页

应用程序实例应用程序实例

【例【例 4-124-12 】判断给定的年份是否为闰年?并】判断给定的年份是否为闰年?并根据所给定的月份判断该月有多少天?判断根据所给定的月份判断该月有多少天?判断闰年的条件是:年份能被闰年的条件是:年份能被 44 整除但不能被整除但不能被 101000 整除,或者能被整除,或者能被 400400 整除。整除。

程序界面

Page 107: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 107107页页

结束结束

Page 108: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 108108页页

第 第 5 5 章章过程过程

Page 109: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 109109页页

学习目标学习目标

掌握建立过程的方法;掌握建立过程的方法; 掌握掌握 SubSub 过程和过程和 FunctionFunction 过程的调用方法过程的调用方法

;; 理解变量和过程作用域的概念。理解变量和过程作用域的概念。

Page 110: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 110110页页

5.1 Sub5.1 Sub 过程过程

SubSub 过程又叫子过程、子程序,子过程不与过程又叫子过程、子程序,子过程不与任何特定的事件相联系,也不依附于某一事任何特定的事件相联系,也不依附于某一事件,只能由别的过程来调用,它可以存储在件,只能由别的过程来调用,它可以存储在窗体或标准模块中。窗体或标准模块中。

SubSub 过程的定义过程的定义 [[ PrivatePrivate ][][ PublicPublic ][][ StaticStatic ]] SubSub 〈过程名〉([〈参数表列〉〈过程名〉([〈参数表列〉])]) 〈语句序列〉〈语句序列〉 [[ Exit SubExit Sub ]] 〈语句序列〉〈语句序列〉

End SubEnd Sub

Page 111: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 111111页页

SubSub 过程的定义过程的定义

【例【例 5-15-1 】定义一个计算阶乘的】定义一个计算阶乘的 SubSub 过程 过程 FFactorialactorial 。。

程序代码如下:程序代码如下:Sub Factorial (m As Integer, total As Long)Sub Factorial (m As Integer, total As Long) Dim i As IntegerDim i As Integer total = 1total = 1 For i = 1 To mFor i = 1 To m total = total * itotal = total * i Next iNext iEnd SubEnd Sub

Sub Factorial (m As Integer, total As Long)Sub Factorial (m As Integer, total As Long) Dim i As IntegerDim i As Integer total = 1total = 1 For i = 1 To mFor i = 1 To m total = total * itotal = total * i Next iNext iEnd SubEnd Sub

Page 112: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 112112页页

SubSub 过程的建立、调用过程的建立、调用

SubSub 过程的建立过程的建立 使用“添加过程”对话框使用“添加过程”对话框 直接在代码编辑窗口中输入直接在代码编辑窗口中输入 SubSub 过程代码过程代码

SubSub 过程的调用过程的调用 格式格式 11 :: CallCall 〈过程名〉[ (〈实参表〉)]〈过程名〉[ (〈实参表〉)] 格式格式 22 :〈过程名〉[〈实参表〉]:〈过程名〉[〈实参表〉]例如:例如:

Call MySub (100)Call MySub (100)

MySub 100MySub 100

Page 113: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 113113页页

SubSub 过程的参数传递方式过程的参数传递方式

按值传递:传递实际参数的一个副本,在按值传递:传递实际参数的一个副本,在 SuSubb 过程中建立一个与实际参数类型和内容相过程中建立一个与实际参数类型和内容相同的形式参数,在同的形式参数,在 SubSub 过程内部对形式参数过程内部对形式参数进行任何运算都不会改变实际参数的值。进行任何运算都不会改变实际参数的值。

按地址传递:传递实际参数的地址。即实际按地址传递:传递实际参数的地址。即实际参数和形式参数在内存中使用同一个存储地参数和形式参数在内存中使用同一个存储地址,所以在址,所以在 SubSub 过程中对形式参数的任何改过程中对形式参数的任何改变,也就是对实际参数的改变。变,也就是对实际参数的改变。

Page 114: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 114114页页

SubSub 过程应用实例过程应用实例

【例【例 5-25-2 】参数传递方式和】参数传递方式和 SubSub 过程调用方过程调用方法举例。法举例。

程序运行结果程序运行结果

Page 115: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 115115页页

5.2 Funtion5.2 Funtion 过程过程 FunctionFunction 过程和过程和 SubSub 过程很类似,但是它要求有返过程很类似,但是它要求有返回值,即函数中的语句完成某种计算功能后,将计回值,即函数中的语句完成某种计算功能后,将计算结果作为函数的返回值。算结果作为函数的返回值。

FuntionFuntion 过程的定义过程的定义[[ PrivatePrivate][][ PublicPublic][][ StaticStatic]] FunctionFunction 〈过程名〉〈过程名〉 ([〈参数表列〉])[([〈参数表列〉])[ AsAs 〈类型〉]〈类型〉]

[〈语句序列〉][〈语句序列〉][〈过程名〉[〈过程名〉 == 〈表达式〉]〈表达式〉][[ Exit FunctionExit Function ]][〈语句序列〉][〈语句序列〉][〈过程名〉[〈过程名〉 == 〈表达式〉]〈表达式〉]

End FunctionEnd Function

Page 116: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 116116页页

FuntionFuntion 过程的定义过程的定义

【例【例 5-35-3 】编写计算圆面积的】编写计算圆面积的 FunctionFunction 过程过程 程序代码如下:程序代码如下:

Function Cir ( r As Single ) As SingleFunction Cir ( r As Single ) As Single Const pi = 3.14Const pi = 3.14 ‘ ‘ 定义符号常量定义符号常量 pipi

Cir = pi * r ^ 2 ‘Cir = pi * r ^ 2 ‘ 将圆面积值赋给函数名将圆面积值赋给函数名End FunctionEnd Function

Function Cir ( r As Single ) As SingleFunction Cir ( r As Single ) As Single Const pi = 3.14Const pi = 3.14 ‘ ‘ 定义符号常量定义符号常量 pipi

Cir = pi * r ^ 2 ‘Cir = pi * r ^ 2 ‘ 将圆面积值赋给函数名将圆面积值赋给函数名End FunctionEnd Function

Page 117: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 117117页页

FuntionFuntion 过程的调用、退出过程的调用、退出

FuntionFuntion 过程的调用过程的调用 直接调用直接调用 用用 CallCall 语句调用语句调用 无参函数的调用无参函数的调用

FuntionFuntion 过程的退出过程的退出 Exit SubExit Sub 语句语句 Exit FunctionExit Function 语句语句

Page 118: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 118118页页

FunctionFunction 过程应用实例过程应用实例

【例【例 5-45-4 】添加一个求整数累加的】添加一个求整数累加的 FunctionFunction 过程过程 SSumInt()umInt() 。。

程序代码如下:程序代码如下:Public Function SumInt(ByVal x As Integer) As IntegerPublic Function SumInt(ByVal x As Integer) As Integer Dim sDim s Dim iDim i s = 0s = 0 For i = 1 To xFor i = 1 To x s = s + is = s + i Next iNext i SumInt = sSumInt = sEnd FunctionEnd Function

Public Function SumInt(ByVal x As Integer) As IntegerPublic Function SumInt(ByVal x As Integer) As Integer Dim sDim s Dim iDim i s = 0s = 0 For i = 1 To xFor i = 1 To x s = s + is = s + i Next iNext i SumInt = sSumInt = sEnd FunctionEnd Function

【例【例 5-55-5 】在程序中调用】在程序中调用 SumInt()SumInt() 函数。函数。

Page 119: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 119119页页

5.3 5.3 退出过程退出过程

用户想在过程未执行完时中途退出,可以使用户想在过程未执行完时中途退出,可以使用用 Exit SubExit Sub 或或 Exit FunctionExit Function 语句。语句。

Exit SubExit Sub 或或 Exit FunctionExit Function 语句可以出现在过语句可以出现在过程主体内的任何地方。程主体内的任何地方。

Page 120: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 120120页页

5.3 5.3 退出过程(续)退出过程(续)

【例【例 5-65-6 】过程】过程 CheckCheck 用来测试传递过来的用来测试传递过来的数值是否小于数值是否小于 100100 ,如果小于,如果小于 100100 ,就在窗,就在窗体上显示该数值,否则,退出子过程体上显示该数值,否则,退出子过程 CheckCheck。。

Sub Check (x As Integer)Sub Check (x As Integer)If x<100 ThenIf x<100 Then

Print xPrint xElseElse

Exit SubExit SubPrint xPrint x

End IfEnd IfEnd SubEnd SubPrivate Sub Form_Activate()Private Sub Form_Activate() Dim y As IntegerDim y As Integer

y =200y =200Call Check(y)Call Check(y)

End SubEnd Sub

Sub Check (x As Integer)Sub Check (x As Integer)If x<100 ThenIf x<100 Then

Print xPrint xElseElse

Exit SubExit SubPrint xPrint x

End IfEnd IfEnd SubEnd SubPrivate Sub Form_Activate()Private Sub Form_Activate() Dim y As IntegerDim y As Integer

y =200y =200Call Check(y)Call Check(y)

End SubEnd Sub

Page 121: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 121121页页

5.4 5.4 变量和过程的作用域变量和过程的作用域

VBVB 程序模块的划分程序模块的划分 窗体模块窗体模块 标准模块标准模块 类模块类模块

Page 122: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 122122页页

窗体模块窗体模块

窗体(窗体( FormForm )就是平时所说的窗口,是程)就是平时所说的窗口,是程序设计的基础。在窗体模块中包含:窗体及序设计的基础。在窗体模块中包含:窗体及控件的属性设置、窗体变量的说明、事件过控件的属性设置、窗体变量的说明、事件过程、窗体内的通用过程,以及外部过程的窗程、窗体内的通用过程,以及外部过程的窗体级声明。体级声明。

窗体模块保存在扩展名为窗体模块保存在扩展名为 .frm.frm 的文件中。的文件中。

Page 123: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 123123页页

标准模块标准模块

标准模块保存在扩展名为标准模块保存在扩展名为 .bas.bas 的文件中;的文件中; 缺省时应用程序中不包含标准模块。缺省时应用程序中不包含标准模块。 标准模块可以包含公共或模块级的变量、常标准模块可以包含公共或模块级的变量、常量、类型、外部过程以及全局过程的全局声量、类型、外部过程以及全局过程的全局声明或模块级声明;明或模块级声明;

缺省时,标准模块中的代码是公有的,任何缺省时,标准模块中的代码是公有的,任何窗体或模块中的事件过程或通用过程都可以窗体或模块中的事件过程或通用过程都可以调用它。调用它。

注意注意 : : 标准模块不能包含事件过程。标准模块不能包含事件过程。

Page 124: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 124124页页

类模块类模块

类模块与标准模块的不同之处在于:标准模类模块与标准模块的不同之处在于:标准模块仅仅含有代码,而类模块既含有代码又含块仅仅含有代码,而类模块既含有代码又含有数据,类模块可以视为没有物理表示的对有数据,类模块可以视为没有物理表示的对象。象。

Page 125: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 125125页页

变量的作用域变量的作用域

私有变量(局部变量):在过程级中定义的私有变量(局部变量):在过程级中定义的变量,仅在声明它的过程中有效。变量,仅在声明它的过程中有效。

模块模块 // 窗体级变量:在模块或窗体中声明的窗体级变量:在模块或窗体中声明的变量,在声明它的模块或窗体中的所有过程变量,在声明它的模块或窗体中的所有过程中有效。中有效。

公有变量(全局变量):在程序的主模块或公有变量(全局变量):在程序的主模块或主窗体中声明的变量,在所有模块的任何过主窗体中声明的变量,在所有模块的任何过程中都有效。程中都有效。

Page 126: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 126126页页

变量的作用域举例变量的作用域举例

调用上述过程,运行结果为:调用上述过程,运行结果为:xx变量在过程变量在过程 11 中的值为:中的值为: 33xx变量在过程变量在过程 22 中的值为:中的值为: 00

Private Sub Procedure1()Private Sub Procedure1() Dim x As IntegerDim x As Integer x = 3x = 3 Print "xPrint "x 变量在过程变量在过程 11 中的值为:中的值为: "; x"; xEnd SubEnd SubPrivate Sub Procedure2()Private Sub Procedure2() Dim x As IntegerDim x As Integer Print "xPrint "x 变量在过程变量在过程 22 中的值为:中的值为: "; x"; xEnd SubEnd Sub

Private Sub Procedure1()Private Sub Procedure1() Dim x As IntegerDim x As Integer x = 3x = 3 Print "xPrint "x 变量在过程变量在过程 11 中的值为:中的值为: "; x"; xEnd SubEnd SubPrivate Sub Procedure2()Private Sub Procedure2() Dim x As IntegerDim x As Integer Print "xPrint "x 变量在过程变量在过程 22 中的值为:中的值为: "; x"; xEnd SubEnd Sub

Page 127: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 127127页页

变量的作用域举例(续)变量的作用域举例(续)

调用上述过程,运行结果为:调用上述过程,运行结果为:xx变量在过程变量在过程 11 中的值为:中的值为: 33xx变量在过程变量在过程 22 中的值为:中的值为: 33

Private x As IntegerPrivate x As IntegerPrivate Sub Procedure1()Private Sub Procedure1() x = 3x = 3 Print "xPrint "x 变量在过程变量在过程 11 中的值为:中的值为: "; x"; xEnd SubEnd SubPrivate Sub Procedure2()Private Sub Procedure2() Print "xPrint "x 变量在过程变量在过程 22 中的值为:中的值为: "; x"; xEnd SubEnd Sub

Private x As IntegerPrivate x As IntegerPrivate Sub Procedure1()Private Sub Procedure1() x = 3x = 3 Print "xPrint "x 变量在过程变量在过程 11 中的值为:中的值为: "; x"; xEnd SubEnd SubPrivate Sub Procedure2()Private Sub Procedure2() Print "xPrint "x 变量在过程变量在过程 22 中的值为:中的值为: "; x"; xEnd SubEnd Sub

Page 128: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 128128页页

过程的作用域过程的作用域

利用利用 PrivatePrivate 关键字定义私有过程关键字定义私有过程 利用利用 PublicPublic 关键字定义公有过程关键字定义公有过程

Page 129: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 129129页页

结束结束

Page 130: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 130130页页

第 第 6 6 章章对话框对话框

Page 131: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 131131页页

学习目标学习目标

了解对话框的概念和分类;了解对话框的概念和分类; 掌握三种方式创建对话框的基本方法;掌握三种方式创建对话框的基本方法; 理解对话框的属性、事件和方法;理解对话框的属性、事件和方法; 能根据实际需要,在应用程序中合理选择并能根据实际需要,在应用程序中合理选择并

创建对话框。创建对话框。

Page 132: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 132132页页

6.1 6.1 预定义对话框预定义对话框

输入对话框输入对话框 : : 用用 InputBoxInputBox 函数可以创建输入对话框函数可以创建输入对话框 。。

消息对话框消息对话框 : :消息对话框是用消息对话框是用 MsgBoxMsgBox 函数实现的函数实现的 。 。

【例【例 6-16-1 】新建一个项目(】新建一个项目( projectproject ),在其窗体的),在其窗体的 FoForm_Loadrm_Load 事件过程中输入一行代码:事件过程中输入一行代码:

【例【例 6-26-2 】编写一个程序,用】编写一个程序,用 InputBoxInputBox 函数建立密码函数建立密码输入对话框,用输入对话框,用 MsgBoxMsgBox 函数建立密码对错消息对话函数建立密码对错消息对话框。框。

str1$ = InputBox("str1$ = InputBox(" 本程序作者向您致意:本程序作者向您致意: ",""," 欢迎使用欢迎使用 ","How are you!"","How are you!"))str1$ = InputBox("str1$ = InputBox(" 本程序作者向您致意:本程序作者向您致意: ",""," 欢迎使用欢迎使用 ","How are you!"","How are you!"))

Page 133: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 133133页页

6.2 6.2 通用对话框通用对话框 VB6.0VB6.0 提供了通用对话框控件(提供了通用对话框控件( CommonDialogCommonDialog ),它可),它可以快速帮助我们建立打开、另存为、颜色、字体、打印、以快速帮助我们建立打开、另存为、颜色、字体、打印、帮助等帮助等 WindowsWindows 标准对话框。标准对话框。

在工具箱中加入通用对话框控件在工具箱中加入通用对话框控件 通用对话框控件的一般属性通用对话框控件的一般属性

NameName 属性:通用对话框的名称属性;属性:通用对话框的名称属性; LeftLeft 、、 TopTop 属性:表示通用对话框的位置;属性:表示通用对话框的位置; DialogTitleDialogTitle 属性:用来设置对话框标题,可以是任意字符串属性:用来设置对话框标题,可以是任意字符串

;; CancelErrorCancelError 属性:用于确定当用户单击“取消”按钮时是否属性:用于确定当用户单击“取消”按钮时是否产生错误提示信息,便于设计人员调试修改。取值为产生错误提示信息,便于设计人员调试修改。取值为 TrueTrue 时时,表示程序会返回一错误信息,通过捕捉这个错误并加以处,表示程序会返回一错误信息,通过捕捉这个错误并加以处理,我们就能避免程序的出错;取值为理,我们就能避免程序的出错;取值为 FalseFalse (缺省值)时(缺省值)时,不返回错误信息。,不返回错误信息。

Page 134: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 134134页页

6.2 6.2 通用对话框(续)通用对话框(续)

ActionAction 功能属性:本属性决定打开何种类型的功能属性:本属性决定打开何种类型的对话框,其作用与后面介绍的对话框,其作用与后面介绍的 ShowShow 方法类似。方法类似。 ActionAction 功能属性与功能属性与 ShowShow 方法对照方法对照

Acti on属性值 Show等同的 方法 显示的对话框类型1 ShowOpen 打开对话框2 ShowSave 另存为对话框3 ShowFont 字体对话框4 ShowCol or 颜色对话框5 ShowPri nter 打印对话框6 ShowHel p 帮助对话框

Page 135: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 135135页页

6.2 6.2 通用对话框(续)通用对话框(续)

通用对话框控件的通用对话框控件的 ShowShow 方法方法 利用通用对话框控件生成对话框的一般步骤利用通用对话框控件生成对话框的一般步骤

先将通用对话框控件加到窗体中;先将通用对话框控件加到窗体中; 在程序代码中,使用通用对话框控件的在程序代码中,使用通用对话框控件的 ShowShow 方方

法或指定法或指定 ActionAction 功能属性的相应值来打开用户功能属性的相应值来打开用户需要的对话框类型;需要的对话框类型;

对话框具体的功能则需要用户编写代码来实现。对话框具体的功能则需要用户编写代码来实现。

Page 136: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 136136页页

6.2.1 6.2.1 打开对话框打开对话框

定义:打开对话框用于指定需要打开的文件定义:打开对话框用于指定需要打开的文件所在的驱动器名、文件名、文件类型及打开所在的驱动器名、文件名、文件类型及打开方式等信息。方式等信息。

当用户使用了通用对话框的当用户使用了通用对话框的 ShowOpenShowOpen 方法方法或对其或对其 ActionAction 属性值设为属性值设为 11 时,就会显示打时,就会显示打开对话框。开对话框。

Page 137: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 137137页页

打开对话框示例打开对话框示例

Page 138: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 138138页页

打开对话框的常用属性打开对话框的常用属性 FileNameFileName 属性:设置默认的文件名或返回选择的文件属性:设置默认的文件名或返回选择的文件

名。名。 InitDirInitDir 属性:用来设置初始的文件目录,并返回用户属性:用来设置初始的文件目录,并返回用户

所选择的目录。所选择的目录。 FilterFilter 属性:返回或设置在对话框的类型列表框中所显属性:返回或设置在对话框的类型列表框中所显示的过滤器。示的过滤器。

FilterIndexFilterIndex 属性:用来指定属性:用来指定 FilterFilter 属性所设置的文件类属性所设置的文件类型中,哪一项可以作为默认值。型中,哪一项可以作为默认值。

DefaultExtDefaultExt 属性:为该对话框返回或设置缺省的文件扩属性:为该对话框返回或设置缺省的文件扩展名。展名。

MaxFileSizeMaxFileSize 属性:设置要打开的文件的最大长度,以属性:设置要打开的文件的最大长度,以字节为单位。字节为单位。

Page 139: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 139139页页

打开对话框的常用属性(续)打开对话框的常用属性(续)

FlagsFlags 属性:为文件对话框选择开关,用来属性:为文件对话框选择开关,用来设置对话框的外观,可取值或符号常量。设置对话框的外观,可取值或符号常量。

FlagsFlags 属性取值和含义属性取值和含义 : :

Fl ags的符号常量 Fl ags值 含义Cdl OFNReadOnl y 1 显示只读复选框且使之处于选中状态Cdl OFNHi deReadOnl y 4 不显示只读复选框Cdl OFNHel pButton 16 显示一个Help按钮

Page 140: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 140140页页

应用实例应用实例

【例【例 6-36-3 】编写一个程序,界面设计如下图】编写一个程序,界面设计如下图所示,单击“打开”按钮可以显示一个打开所示,单击“打开”按钮可以显示一个打开对话框,该对话框中有一个“帮助”按钮和对话框,该对话框中有一个“帮助”按钮和一个“以只读方式打开文件”复选框,对话一个“以只读方式打开文件”复选框,对话框的初始文件目录是框的初始文件目录是 "c:\myvb""c:\myvb" 。在打开对。在打开对话框中可以实现对文本文件的打开,并将文话框中可以实现对文本文件的打开,并将文本文件的内容在界面的文本框中显示出来。本文件的内容在界面的文本框中显示出来。

Page 141: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 141141页页

应用实例(续)应用实例(续)

用户界面用户界面

Page 142: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 142142页页

应用实例(续)应用实例(续)

对象 Name属性 Capti on属性Command1 cmdOpen 打开Command2 cmdSave 另存Command3 cmdCol or 颜色Command4 cmdFont 字体Command5 cmdPri nt 打印Command6 cmdHel p 帮助Command7 cmdQui t 退出Label 1 l bl Edi t 示例区Text1 txtVi ew

CommonDi al og1 dl gOpen

控件属性设置表控件属性设置表

Page 143: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 143143页页

6.2.2 6.2.2 另存为对话框另存为对话框

定义:另存为对话框可完成对文件的保存。定义:另存为对话框可完成对文件的保存。 当用户使用了通用对话框的当用户使用了通用对话框的 ShowSaveShowSave 方法方法

或将其或将其 ActionAction 属性值设为属性值设为 22 时,就会弹出“时,就会弹出“另存为”对话框。另存为”对话框。

【例【例 6-46-4 】请为例】请为例 6-36-3 窗体中的“另存”按窗体中的“另存”按钮编写代码,实现将文本框的内容存盘。钮编写代码,实现将文本框的内容存盘。

Page 144: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 144144页页

6.2.3 6.2.3 颜色对话框颜色对话框

定义:颜色对话框用来在系统调色板中选择定义:颜色对话框用来在系统调色板中选择颜色,或者创建并选定自定义颜色。程序运颜色,或者创建并选定自定义颜色。程序运行时,选定颜色并关闭对话框后,可用行时,选定颜色并关闭对话框后,可用 ColoColorr 属性获取选定的颜色。属性获取选定的颜色。

当用户使用通用对话框的当用户使用通用对话框的 ShowColorShowColor 方法或方法或将其将其 ActionAction 属性值设为属性值设为 33 时,就会弹出“颜时,就会弹出“颜色”对话框,为用户提供颜色选择。色”对话框,为用户提供颜色选择。

Page 145: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 145145页页

颜色对话框示例颜色对话框示例

Page 146: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 146146页页

6.2.3 6.2.3 颜色对话框(续)颜色对话框(续)

与与 ShowColorShowColor 方法相关的属性:方法相关的属性: ColorColor 属性:用户选定的颜色,它返回用户选择属性:用户选定的颜色,它返回用户选择

的颜色值。的颜色值。 FlagsFlags 属性:属性:

Fl ags的符号常量 Fl ags值 含义vbCCRGBi ni t 1 Col or让 属性定义的颜色首次显示出来vbCCFul l Open 2 " "打开的对话框包括 自定义颜色 窗口

vbCCPreventFul l Open 4 " " 禁止使用 规定自定义颜色 按钮vbCCShowHel p 8 Hel p显示一个 按钮

【例【例 6-56-5 】请为例】请为例 6-36-3 窗体中的“颜色”按窗体中的“颜色”按钮编写代码,实现将文本框的内容设置颜色钮编写代码,实现将文本框的内容设置颜色。。

Page 147: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 147147页页

6.2.4 6.2.4 字体对话框字体对话框

定义:“字体”对话框可完成对选定文字或定义:“字体”对话框可完成对选定文字或控件内的文字的字体、字形及大小、效果、控件内的文字的字体、字形及大小、效果、颜色等的选择,为文本的字处理提供了有力颜色等的选择,为文本的字处理提供了有力工具。工具。

当用户使用通用对话框的当用户使用通用对话框的 ShowFontShowFont 方法或方法或将其将其 ActionAction 属性值设为属性值设为 44 时,就会弹出“字时,就会弹出“字体”对话框。体”对话框。

Page 148: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 148148页页

字体对话框示例字体对话框示例

Page 149: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 149149页页

与与 ShowFontShowFont 方法相关的属性方法相关的属性 ColorColor 属性:用户在颜色列表框中选定的颜色。用属性:用户在颜色列表框中选定的颜色。用此属性,必须先将此属性,必须先将 FlagsFlags 属性设置为属性设置为 cdlCFEffectscdlCFEffects。。

FontBoldFontBold 属性:是否选定“粗体”。 属性:是否选定“粗体”。 FontItalicFontItalic 属性:是否选定“斜体”。 属性:是否选定“斜体”。 FontStrikethruFontStrikethru 属性:是否选定删除线。 属性:是否选定删除线。 FontUnderlineFontUnderline 属性:是否选定下划线。 属性:是否选定下划线。 FontNameFontName 属性:选定的字体名称。 属性:选定的字体名称。 FontSizeFontSize 属性:选定的字体大小。属性:选定的字体大小。 MinMin 、、 MaxMax 属性:设定用户所能选择字体的大小属性:设定用户所能选择字体的大小范围。范围。

Page 150: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 150150页页

与与 ShowFontShowFont 方法相关的属性(续)方法相关的属性(续)

FlagsFlags 属性:用户在显示“字体”对话框之前务必属性:用户在显示“字体”对话框之前务必设置设置 FlagsFlags 属性,否则会出现不存在字体错误。属性,否则会出现不存在字体错误。 FlagsFlags常用属性值:常用属性值:

【例【例 6-66-6 】请为例】请为例 6-36-3 窗体中的“字体”按钮编写窗体中的“字体”按钮编写代码,实现文本框内容的字体改变。代码,实现文本框内容的字体改变。

符号常量 值 含义cdlCFScreenFonts 1 只显示屏幕字体

cdlCFPri nterFonts 2 显示打印机字体cdlCFBoth 3 显示打印机字体和屏幕字体

cdlCFShowHel p 4 Hel p显示一个 按钮cdlCFEff ects 256 显示删除线、下划线检查框及颜色组合框

Page 151: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 151151页页

6.2.5 6.2.5 打印对话框打印对话框

定义:打印对话框,可完成有关打印的功能定义:打印对话框,可完成有关打印的功能,允许用户指定打印页数范围、打印质量、,允许用户指定打印页数范围、打印质量、复制数目等等。复制数目等等。

当用户使用了通用对话框的当用户使用了通用对话框的 ShowPrinterShowPrinter 方方法或将其法或将其 ActionAction 属性值设为属性值设为 55 时,就会弹出时,就会弹出一个标准的“打印”对话框。一个标准的“打印”对话框。

Page 152: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 152152页页

打印对话框示例打印对话框示例

Page 153: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 153153页页

打印对话框的重要属性打印对话框的重要属性

CopiesCopies 属性:整型值,用于指定打印的份数。属性:整型值,用于指定打印的份数。 FromPageFromPage ,, ToPageToPage 属性:用于指定打印起始页属性:用于指定打印起始页号(号( FromPageFromPage )和终止页号()和终止页号( ToPageToPage )。)。

MaxMax ,, MinMin 属性:用于设定属性:用于设定 FromPagesFromPages ,, ToPageToPagess 的取值范围。的取值范围。

【例【例 6-76-7 】请为例】请为例 6-36-3 窗体中的“打印”按钮编写窗体中的“打印”按钮编写代码,实现文本框内容的打印输出代码,实现文本框内容的打印输出

Page 154: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 154154页页

6.2.6 6.2.6 帮助对话框帮助对话框

定义:“帮助”对话框用于将帮助文件(定义:“帮助”对话框用于将帮助文件( .hl.hlpp )与程序界面连接,起到显示并检索的目)与程序界面连接,起到显示并检索的目的。的。

当用户使用了通用对话框的当用户使用了通用对话框的 ShowHelpShowHelp 方法方法或将其或将其 ActionAction 属性值设为属性值设为 66 时,就会弹出一时,就会弹出一个标准的“帮助”对话框。个标准的“帮助”对话框。

Page 155: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 155155页页

帮助对话框示例帮助对话框示例

Page 156: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 156156页页

帮助对话框的重要属性帮助对话框的重要属性

HelpCommandHelpCommand 属性:帮助命令属性,用于属性:帮助命令属性,用于返回或设置所需要在线返回或设置所需要在线 HelpHelp 帮助类型,如帮助类型,如上下文相关的帮助或特定关键字的帮助等。上下文相关的帮助或特定关键字的帮助等。

HelpFileHelpFile 属性:帮助文件属性,用于指定帮属性:帮助文件属性,用于指定帮助文件的路径和文件名。助文件的路径和文件名。

【例【例 6-86-8 】请为例】请为例 6-36-3 窗体中的“帮助”按窗体中的“帮助”按钮编写代码,显示帮助文件提供的信息。钮编写代码,显示帮助文件提供的信息。

Page 157: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 157157页页

6.3 6.3 自定义对话框自定义对话框

定义:自定义对话框是用户自己创建的含有定义:自定义对话框是用户自己创建的含有控件的窗体。对话框窗体一般没有最大化与控件的窗体。对话框窗体一般没有最大化与最小化按钮,也不能改变它的大小。最小化按钮,也不能改变它的大小。

自定义对话框的属性设置自定义对话框的属性设置属性 值 含义

BorderStyl e 1 边框设定为固定单边框,运行时不能改变尺寸MaxButton FALSE 取消最大化按钮Mi nButton FALSE 取消最小化按钮

Page 158: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 158158页页

6.3 6.3 自定义对话框(续)自定义对话框(续)

自定义对话框的两种类型自定义对话框的两种类型 模式对话框:带参数模式对话框:带参数 VbModalVbModal ,在操作应用程,在操作应用程

序的其他部分之前,必须先关闭对话框(隐藏或序的其他部分之前,必须先关闭对话框(隐藏或卸载)。卸载)。

无模式对话框:带参数无模式对话框:带参数 VbModalessVbModaless ,在操作应,在操作应用程序的其他部分时,无需关闭对话框,该对话用程序的其他部分时,无需关闭对话框,该对话框应用较少。框应用较少。

显示自定义对话框的方法显示自定义对话框的方法 form1.show VbModal form1.show VbModal 显示为模式对话框显示为模式对话框 form1.show VbModaless form1.show VbModaless 显示为无模式对话框显示为无模式对话框

Page 159: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 159159页页

6.3 6.3 自定义对话框(续)自定义对话框(续)

【例【例 6-96-9 】设计一个程序,该程序界面包含】设计一个程序,该程序界面包含两个窗体两个窗体 frm1frm1 和和 frm2frm2 ,, frm2frm2 作为作为 frm1frm1 的的对话框,窗体对话框,窗体 frm1frm1 上有两个按钮:“关于上有两个按钮:“关于”(”( CmdAboutCmdAbout )和“退出”()和“退出”( CmdExitCmdExit),窗体),窗体 frm2frm2 上一个按钮:“返回”(上一个按钮:“返回”( CmCmdReturndReturn )。)。

用户界面

Page 160: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 160160页页

结束结束

Page 161: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 161161页页

第 第 7 7 章章菜单和工具栏菜单和工具栏

Page 162: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 162162页页

学习目标学习目标

掌握掌握 VBVB 中利用菜单编辑器设计菜单的方法;中利用菜单编辑器设计菜单的方法; 掌握掌握 PopupMenuPopupMenu 方法的使用;方法的使用; 掌握使用 掌握使用 ToolBarToolBar 控件和控件和 ImageListImageList 控件设计工具控件设计工具

栏的方法。栏的方法。

Page 163: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 163163页页

7.1 7.1 菜单菜单

下拉式菜单下拉式菜单

弹出式菜单弹出式菜单

Page 164: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 164164页页

7.1.1 7.1.1 菜单编辑器菜单编辑器

调用菜单编辑器方法:调用菜单编辑器方法: 单击【工具】→【菜单编辑器】命令单击【工具】→【菜单编辑器】命令 单击标准工具栏中的“菜单编辑器”图标( )单击标准工具栏中的“菜单编辑器”图标( )

菜单编辑器的组成:数据区、编辑区和菜单菜单编辑器的组成:数据区、编辑区和菜单项显示区。项显示区。

Page 165: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 165165页页

7.1.2 7.1.2 用菜单编辑器建立菜单用菜单编辑器建立菜单

【例【例 7-17-1 】设计一个具有算术运算(加、减】设计一个具有算术运算(加、减、乘和除),设置文本样式(粗体、斜体、、乘和除),设置文本样式(粗体、斜体、下划线)及退出功能的菜单。用户通过键盘下划线)及退出功能的菜单。用户通过键盘输入两个运算数,利用菜单命令计算它们的输入两个运算数,利用菜单命令计算它们的和、差、积或商,将其结果显示出来,并可和、差、积或商,将其结果显示出来,并可利用菜单命令改变结果的显示样式。利用菜单命令改变结果的显示样式。

Page 166: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 166166页页

例例 7-17-1 的程序运行界面的程序运行界面

程序运行界面之一 程序运行界面之二程序运行界面之一 程序运行界面之二

Page 167: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 167167页页

例例 7-17-1 的设计步骤的设计步骤

界面设计界面设计 各菜单项属性各菜单项属性

菜单层次 名称 标题 内缩符1主菜单项 mnucal 计算 无

1子菜单项 mnucal add 加 12子菜单项 mnucal mi n 减 13子菜单项 mnucal mul 乘 14子菜单项 mnucal di v 除 1

2主菜单项 mnustyl 样式 无1子菜单项 mnustyl bol d 粗体 12子菜单项 mnustyl i tal 斜体 13子菜单项 mnustyl undl 下划线 1

3主菜单项 mnuexi t 退出 无

Page 168: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 168168页页

例例 7-17-1 的设计步骤(续)的设计步骤(续)

控件属性控件属性

控件 Name名称( ) Capti on标题( ) Text文本( ) FontSi ze字号( )1标签 l bl 1 第一个数 无 102标签 l bl 2 第二个数 无 103标签 l bl 3 运算结果 无 104标签 l bl symbol (空白) 无 245标签 l bl 5 = 无 246标签 l bl resul t (空白) 无 121文本框 txtoperand1 无 (空白) 122文本框 txtoperand2 无 (空白) 12

Page 169: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 169169页页

例例 7-17-1 的设计步骤(续)的设计步骤(续) 程序代码程序代码

““ 计算”菜单计算”菜单 Private Sub mnucaladd_Click()Private Sub mnucaladd_Click() x = Val(txtoperand1.Text) + Val(txtoperand2.Text)x = Val(txtoperand1.Text) + Val(txtoperand2.Text) lblsymbol.Caption = "+"lblsymbol.Caption = "+" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd SubPrivate Sub mnucalmin_Click()Private Sub mnucalmin_Click() x = Val(txtoperand1.Text) - Val(txtoperand2.Text)x = Val(txtoperand1.Text) - Val(txtoperand2.Text) lblsymbol.Caption = "-"lblsymbol.Caption = "-" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd Sub

Private Sub mnucaladd_Click()Private Sub mnucaladd_Click() x = Val(txtoperand1.Text) + Val(txtoperand2.Text)x = Val(txtoperand1.Text) + Val(txtoperand2.Text) lblsymbol.Caption = "+"lblsymbol.Caption = "+" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd SubPrivate Sub mnucalmin_Click()Private Sub mnucalmin_Click() x = Val(txtoperand1.Text) - Val(txtoperand2.Text)x = Val(txtoperand1.Text) - Val(txtoperand2.Text) lblsymbol.Caption = "-"lblsymbol.Caption = "-" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd Sub

Private Sub mnucalmul_Click()Private Sub mnucalmul_Click() x = Val(txtoperand1.Text) * Val(txtoperand2.Text)x = Val(txtoperand1.Text) * Val(txtoperand2.Text) lblsymbol.Caption = "×"lblsymbol.Caption = "×" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd SubPrivate Sub mnucaldiv_Click()Private Sub mnucaldiv_Click() x = Val(txtoperand1.Text) / Val(txtoperand2.Text)x = Val(txtoperand1.Text) / Val(txtoperand2.Text) lblsymbol.Caption = "÷"lblsymbol.Caption = "÷" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd Sub

Private Sub mnucalmul_Click()Private Sub mnucalmul_Click() x = Val(txtoperand1.Text) * Val(txtoperand2.Text)x = Val(txtoperand1.Text) * Val(txtoperand2.Text) lblsymbol.Caption = "×"lblsymbol.Caption = "×" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd SubPrivate Sub mnucaldiv_Click()Private Sub mnucaldiv_Click() x = Val(txtoperand1.Text) / Val(txtoperand2.Text)x = Val(txtoperand1.Text) / Val(txtoperand2.Text) lblsymbol.Caption = "÷"lblsymbol.Caption = "÷" lblresult.Caption = Str$(x)lblresult.Caption = Str$(x)End SubEnd Sub

Page 170: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 170170页页

例例 7-17-1 的设计步骤(续)的设计步骤(续) ““样式”菜单样式”菜单

Private Sub mnustylbold_Click()Private Sub mnustylbold_Click() If lblresult.FontBold = False ThenIf lblresult.FontBold = False Then lblresult.FontBold = Truelblresult.FontBold = True ElseElse lblresult.FontBold = Falselblresult.FontBold = False End IfEnd IfEnd SubEnd SubPrivate Sub mnustylital_Click()Private Sub mnustylital_Click() If lblresult.FontItalic = False ThenIf lblresult.FontItalic = False Then lblresult.FontItalic = Truelblresult.FontItalic = True ElseElse lblresult.FontItalic = Falselblresult.FontItalic = False End IfEnd IfEnd Sub End Sub

Private Sub mnustylbold_Click()Private Sub mnustylbold_Click() If lblresult.FontBold = False ThenIf lblresult.FontBold = False Then lblresult.FontBold = Truelblresult.FontBold = True ElseElse lblresult.FontBold = Falselblresult.FontBold = False End IfEnd IfEnd SubEnd SubPrivate Sub mnustylital_Click()Private Sub mnustylital_Click() If lblresult.FontItalic = False ThenIf lblresult.FontItalic = False Then lblresult.FontItalic = Truelblresult.FontItalic = True ElseElse lblresult.FontItalic = Falselblresult.FontItalic = False End IfEnd IfEnd Sub End Sub

Private Sub mnustylundl_Click()Private Sub mnustylundl_Click() If lblresult.FontUnderline = False ThenIf lblresult.FontUnderline = False Then lblresult.FontUnderline = Truelblresult.FontUnderline = True ElseElse lblresult.FontUnderline = Falselblresult.FontUnderline = False End IfEnd IfEnd SubEnd Sub

Private Sub mnustylundl_Click()Private Sub mnustylundl_Click() If lblresult.FontUnderline = False ThenIf lblresult.FontUnderline = False Then lblresult.FontUnderline = Truelblresult.FontUnderline = True ElseElse lblresult.FontUnderline = Falselblresult.FontUnderline = False End IfEnd IfEnd SubEnd Sub

Page 171: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 171171页页

例例 7-17-1 的设计步骤(续)的设计步骤(续)

““ 退出”菜单退出”菜单

Private Sub mnuexit_Click()Private Sub mnuexit_Click() EndEndEnd Sub End Sub

Private Sub mnuexit_Click()Private Sub mnuexit_Click() EndEndEnd Sub End Sub

Page 172: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 172172页页

7.1.3 7.1.3 修改及删除菜单项修改及删除菜单项

重新排列菜单项重新排列菜单项 插入新的菜单项插入新的菜单项 删除菜单项删除菜单项

Page 173: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 173173页页

7.1.4 7.1.4 高级菜单设计高级菜单设计

菜单分隔条菜单分隔条 首先在要添加分隔条的菜单项前插入一个新的菜单项,首先在要添加分隔条的菜单项前插入一个新的菜单项,然后在“标题”栏部分键入连字符“然后在“标题”栏部分键入连字符“ -”-” ,即可使新菜单,即可使新菜单项变成分隔条。项变成分隔条。

增设访问键与快捷键增设访问键与快捷键 设置访问键:访问键的设置非常简单,只需在菜单编辑设置访问键:访问键的设置非常简单,只需在菜单编辑

器的“标题”项中,将作为访问键的字母前加上“器的“标题”项中,将作为访问键的字母前加上“ &”&”即可。即可。

设置快捷键:选中菜单编辑器中需要设置快捷键的菜单设置快捷键:选中菜单编辑器中需要设置快捷键的菜单项,然后在标有“快捷键”的组合框中选中所要的快捷项,然后在标有“快捷键”的组合框中选中所要的快捷键即可。键即可。

Page 174: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 174174页页

7.1.4 7.1.4 高级菜单设计(续)高级菜单设计(续) 为菜单项设置复选标志为菜单项设置复选标志

利用菜单编辑器中的“复选”部分的复选框可以设置菜利用菜单编辑器中的“复选”部分的复选框可以设置菜单项是否具有复选标记。单项是否具有复选标记。

在程序代码中设置菜单项的复选(在程序代码中设置菜单项的复选( CheckedChecked )属性实现)属性实现:当:当 CheckedChecked 为为 TrueTrue 时,菜单项前有复选标志,如果时,菜单项前有复选标志,如果该属性为该属性为 FalseFalse ,则没有复选标志。,则没有复选标志。

有效性控制有效性控制 利用菜单编辑器中的“有效”复选框可以设置菜单项的利用菜单编辑器中的“有效”复选框可以设置菜单项的

有效性。有效性。 若要在运行时要控制菜单项的有效性,可通过设置菜单若要在运行时要控制菜单项的有效性,可通过设置菜单项的项的 EnabledEnabled 属性实现:该属性为属性实现:该属性为 TrueTrue 时,菜单项有时,菜单项有效;相反,将效;相反,将 EnabledEnabled 设为设为 FalseFalse ,则菜单项无效。,则菜单项无效。

Page 175: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 175175页页

7.1.5 7.1.5 弹出式菜单弹出式菜单

定义:弹出式菜单在用鼠标右键单击时出现定义:弹出式菜单在用鼠标右键单击时出现,并且根据对象不同可以在不同位置显示。,并且根据对象不同可以在不同位置显示。

建立弹出式菜单的步骤:建立弹出式菜单的步骤: 利用菜单编辑器来建立菜单:方法与设计下拉式利用菜单编辑器来建立菜单:方法与设计下拉式

菜单基本相同,唯一的区别就是将主菜单项的“菜单基本相同,唯一的区别就是将主菜单项的“可见”属性设为可见”属性设为 FalseFalse 。。

将设计好的菜单弹出显示:将设计好的菜单弹出显示: 用用 PopupMenuPopupMenu 方法显示弹出式菜单的格式:方法显示弹出式菜单的格式: 〈窗体名〉.〈窗体名〉. PopupMenu PopupMenu 〈菜单名〉〈菜单名〉 [[ ,, Flags[Flags[ ,, X[X[ ,, Y[Y[ ,, BoldCommand]]]]BoldCommand]]]]

Page 176: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 176176页页

7.1.6 7.1.6 弹出式菜单实例弹出式菜单实例

【例【例 7-27-2 】在例】在例 7-17-1 的基础上再建立一个弹的基础上再建立一个弹出式菜单,用于对计算结果进行数制转换,出式菜单,用于对计算结果进行数制转换,包括:十进制、八进制和十六进制。包括:十进制、八进制和十六进制。

弹出式菜单的菜单项属性:弹出式菜单的菜单项属性:标题 名称 可见性 内缩符号数制转换 mnuchg FALSE 无八进制 mnuchgoctv TRUE 1十进制 mnuchgdec TRUE 1十六进制 mnuchghexv TRUE 1

Page 177: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 177177页页

例例 7-27-2 的程序代码的程序代码

Dim x As DoubleDim x As DoublePrivate Sub Mnuchgoctv_Click() 'Private Sub Mnuchgoctv_Click() ' 八进制菜单项事件过程八进制菜单项事件过程 lblresult.Caption = Oct$(x)lblresult.Caption = Oct$(x) Mnuchgoctv.Checked = TrueMnuchgoctv.Checked = True mnuchgdec.Checked = Falsemnuchgdec.Checked = False Mnuchghexv.Checked = FalseMnuchghexv.Checked = FalseEnd SubEnd SubPrivate Sub Mnuchgoctv_Click() 'Private Sub Mnuchgoctv_Click() ' 十进制菜单项事件过程十进制菜单项事件过程 lblresult.Caption = xlblresult.Caption = x Mnuchgdec.Checked = TrueMnuchgdec.Checked = True mnuchgoctv.Checked = Falsemnuchgoctv.Checked = False Mnuchghexv.Checked = FalseMnuchghexv.Checked = FalseEnd SubEnd Sub

Dim x As DoubleDim x As DoublePrivate Sub Mnuchgoctv_Click() 'Private Sub Mnuchgoctv_Click() ' 八进制菜单项事件过程八进制菜单项事件过程 lblresult.Caption = Oct$(x)lblresult.Caption = Oct$(x) Mnuchgoctv.Checked = TrueMnuchgoctv.Checked = True mnuchgdec.Checked = Falsemnuchgdec.Checked = False Mnuchghexv.Checked = FalseMnuchghexv.Checked = FalseEnd SubEnd SubPrivate Sub Mnuchgoctv_Click() 'Private Sub Mnuchgoctv_Click() ' 十进制菜单项事件过程十进制菜单项事件过程 lblresult.Caption = xlblresult.Caption = x Mnuchgdec.Checked = TrueMnuchgdec.Checked = True mnuchgoctv.Checked = Falsemnuchgoctv.Checked = False Mnuchghexv.Checked = FalseMnuchghexv.Checked = FalseEnd SubEnd Sub

Private Sub Mnuchgoctv_Click() 'Private Sub Mnuchgoctv_Click() ' 十六进制菜单项事件过程十六进制菜单项事件过程 lblresult.Caption =Hex$(x)lblresult.Caption =Hex$(x) Mnuchghexv.Checked = TrueMnuchghexv.Checked = True mnuchgoctv.Checked = Falsemnuchgoctv.Checked = False Mnuchghdec.Checked = FalseMnuchghdec.Checked = FalseEnd SubEnd SubPrivate Sub Form_MouseDown(Button As Integer, _Private Sub Form_MouseDown(Button As Integer, _ Shift As Integer, x As Single, Y As Single)Shift As Integer, x As Single, Y As Single) If Button = 2 ThenIf Button = 2 Then PopupMenu mnuchgPopupMenu mnuchg End IfEnd IfEnd SubEnd Sub

Private Sub Mnuchgoctv_Click() 'Private Sub Mnuchgoctv_Click() ' 十六进制菜单项事件过程十六进制菜单项事件过程 lblresult.Caption =Hex$(x)lblresult.Caption =Hex$(x) Mnuchghexv.Checked = TrueMnuchghexv.Checked = True mnuchgoctv.Checked = Falsemnuchgoctv.Checked = False Mnuchghdec.Checked = FalseMnuchghdec.Checked = FalseEnd SubEnd SubPrivate Sub Form_MouseDown(Button As Integer, _Private Sub Form_MouseDown(Button As Integer, _ Shift As Integer, x As Single, Y As Single)Shift As Integer, x As Single, Y As Single) If Button = 2 ThenIf Button = 2 Then PopupMenu mnuchgPopupMenu mnuchg End IfEnd IfEnd SubEnd Sub

Page 178: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 178178页页

7.2 7.2 工具栏工具栏

在窗体中添加工具栏在窗体中添加工具栏 工具栏实例工具栏实例

【例【例 7-37-3 】在例】在例 7-27-2 的基础上,再设计一工的基础上,再设计一工具栏,该工具栏包含四个按钮,分别代表加具栏,该工具栏包含四个按钮,分别代表加、减、乘和除四种运算,使用户可以使用工、减、乘和除四种运算,使用户可以使用工具栏中的按钮来执行相应运算。具栏中的按钮来执行相应运算。

Page 179: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 179179页页

结束结束

Page 180: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 180180页页

第第 88 章 章 文件操作文件操作

Page 181: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 181181页页

学习目标学习目标

理解文件的概念;理解文件的概念; 了解文件的分类及相互区别;了解文件的分类及相互区别; 掌握文件操作的一般步骤和顺序文件操作的两种方掌握文件操作的一般步骤和顺序文件操作的两种方

法。法。

Page 182: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 182182页页

8.1 8.1 文件的基本概念和分类文件的基本概念和分类

定义:文件是指存储在外部介质上的数据的集合。定义:文件是指存储在外部介质上的数据的集合。 文件读写的两个阶段:文件读写的两个阶段:

程序必须找到要读取的数据的起点,也就是找到数据在程序必须找到要读取的数据的起点,也就是找到数据在文件中的位置;文件中的位置;

程序必须通过请求操作系统的某些命令来完成具体的读程序必须通过请求操作系统的某些命令来完成具体的读写操作。写操作。

文件分类: 文件分类: 顺序文件顺序文件 随机文件随机文件 二进制文件二进制文件

Page 183: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 183183页页

8.2 8.2 访问文件的方法和一般步骤访问文件的方法和一般步骤

VBVB 对文件的存取的两种方式:对文件的存取的两种方式: 传统的文件操作(以函数的形式完成的)传统的文件操作(以函数的形式完成的) 文件系统对象文件系统对象 FSOFSO (( FileStreamObjectFileStreamObject ))

文件的访问步骤:文件的访问步骤: 打开(或建立)文件打开(或建立)文件 读写文件读写文件 关闭文件关闭文件

Page 184: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 184184页页

应用实例应用实例

【例【例 8-18-1 】建立一个工程(工程】建立一个工程(工程 11 ),该工程有一),该工程有一个窗体(个窗体( Form1Form1 )。窗体上有两个命令按钮(名)。窗体上有两个命令按钮(名称分别为称分别为 cmdReadcmdRead 和和 cmdWritecmdWrite ),分别用来实),分别用来实现文件的读取和写入操作。单击“写入”按钮将在现文件的读取和写入操作。单击“写入”按钮将在文本文件“文本文件“ E:\myfile”E:\myfile” 中写入如下所示的三条记录中写入如下所示的三条记录,单击“读取”按钮将从文本文件“,单击“读取”按钮将从文本文件“ E:\myfile”E:\myfile” 中中取出记录并显示在窗体上。取出记录并显示在窗体上。

张颖 销售代表 女士 245 复兴门 号王伟 ( )副总裁 销售 博士 890 罗马花园 号刘英玫 内部销售协调员 小姐 76 建国门 号

Page 185: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 185185页页

程序运行界面程序运行界面

Page 186: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 186186页页

8.3 8.3 传统的文件访问方法传统的文件访问方法

顺序文件的打开顺序文件的打开OpenOpen 〈〈 pathnamepathname 〉〉 ForFor 〈〈 modemode 〉〉 ASAS [[ ## ]〈]〈 filenumfilenum

berber 〉[〉[ Len=Len= 〈〈 reclengthreclength 〉]〉] 顺序文件的关闭顺序文件的关闭

Close #Close # 〈〈 filenumberfilenumber 〉〉 顺序文件的写入顺序文件的写入

Print #Print # 〈〈 filenumberfilenumber 〉,[〉,[ outputlistoutputlist ]] 顺序文件的读取顺序文件的读取

Input #Input # 〈〈 filenumberfilenumber 〉,〈〉,〈 outputlistoutputlist 〉〉

Page 187: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 187187页页

例例 8-18-1 的程序代码的程序代码

Private Sub cmdWrite_Click() ‘Private Sub cmdWrite_Click() ‘ 写入按钮写入按钮 Open "E:\myfile.txt" For Append As #1Open "E:\myfile.txt" For Append As #1 Print #1, "Print #1, " 张颖张颖 ", "", " 销售代表销售代表 ", "", " 女士女士 ", "", " 复兴门 复兴门 245 245 号号 "" Print #1, "Print #1, " 王伟王伟 ", "", " 副总裁副总裁 (( 销售销售 )", ")", " 博士博士 ", "", " 罗马花园 罗马花园 890 890 号号 "" Print #1, "Print #1, " 刘英玫刘英玫 ", "", " 内部销售协调员内部销售协调员 ", "", " 小姐小姐 ", "", " 建国门 建国门 76 76 号号

"" Close #1Close #1End SubEnd Sub

Private Sub cmdWrite_Click() ‘Private Sub cmdWrite_Click() ‘ 写入按钮写入按钮 Open "E:\myfile.txt" For Append As #1Open "E:\myfile.txt" For Append As #1 Print #1, "Print #1, " 张颖张颖 ", "", " 销售代表销售代表 ", "", " 女士女士 ", "", " 复兴门 复兴门 245 245 号号 "" Print #1, "Print #1, " 王伟王伟 ", "", " 副总裁副总裁 (( 销售销售 )", ")", " 博士博士 ", "", " 罗马花园 罗马花园 890 890 号号 "" Print #1, "Print #1, " 刘英玫刘英玫 ", "", " 内部销售协调员内部销售协调员 ", "", " 小姐小姐 ", "", " 建国门 建国门 76 76 号号

"" Close #1Close #1End SubEnd Sub

Private Sub cmdRead_Click() ‘Private Sub cmdRead_Click() ‘ 读取按钮读取按钮 Dim Rec As StringDim Rec As String Dim n As IntegerDim n As Integer Dim i As IntegerDim i As Integer n = InputBox("n = InputBox(" 请输入要读出的记录数请输入要读出的记录数 ")") Print "Print " 姓名姓名 "; Tab(18); ""; Tab(18); " 职务职务 "; Tab(36); ""; Tab(36); " 尊称尊称 "; Tab(54); ""; Tab(54); " 地址地址 "" PrintPrint Open "E:\myfile.txt" For Input As #1Open "E:\myfile.txt" For Input As #1 For i = 1 To n For i = 1 To n Input #1, Rec ‘Input #1, Rec ‘ 读出一条记录的内容,存入变量读出一条记录的内容,存入变量 RecRec Print RecPrint Rec Next iNext i Close #1Close #1End SubEnd Sub

Private Sub cmdRead_Click() ‘Private Sub cmdRead_Click() ‘ 读取按钮读取按钮 Dim Rec As StringDim Rec As String Dim n As IntegerDim n As Integer Dim i As IntegerDim i As Integer n = InputBox("n = InputBox(" 请输入要读出的记录数请输入要读出的记录数 ")") Print "Print " 姓名姓名 "; Tab(18); ""; Tab(18); " 职务职务 "; Tab(36); ""; Tab(36); " 尊称尊称 "; Tab(54); ""; Tab(54); " 地址地址 "" PrintPrint Open "E:\myfile.txt" For Input As #1Open "E:\myfile.txt" For Input As #1 For i = 1 To n For i = 1 To n Input #1, Rec ‘Input #1, Rec ‘ 读出一条记录的内容,存入变量读出一条记录的内容,存入变量 RecRec Print RecPrint Rec Next iNext i Close #1Close #1End SubEnd Sub

Page 188: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 188188页页

8.4 8.4 使用使用 FSOFSO 对象模型访问文件对象模型访问文件

FSOFSO 对象的创建对象的创建 在工程中引用了在工程中引用了 FSOFSO 对象:选择【工程】→【对象:选择【工程】→【引用】命令,将相应的库加入工程。引用】命令,将相应的库加入工程。

创建创建 FSOFSO 对象的两种方法:对象的两种方法: 将一个变量声明为将一个变量声明为 FSOFSO 对象类型对象类型 通过通过 CreateObjectCreateObject 方法创建一个方法创建一个 FSO FSO 对象对象

使用使用 FileSystemObjectFileSystemObject 对象打开和创建文本对象打开和创建文本文件文件〈〈 ObjectObject 〉〉 .OpenTextFile.OpenTextFile (〈(〈 filenamefilename 〉〉 [,〈[,〈 iomodeiomode 〉[〉[ ,, 〈〈 createcreate 〉]])〉]])

Page 189: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 189189页页

8.4 8.4 使用使用 FSOFSO 对象模型访问文件(续)对象模型访问文件(续) 使用使用 TextStreamTextStream 对象进行文本文件的读写对象进行文本文件的读写

TextStreamTextStream 对象的常用的属性和方法:对象的常用的属性和方法: LineLine 属性属性 ColumnColumn 属性属性 CloseClose 方法方法

写文本文件的方法写文本文件的方法 〈对象名〉〈对象名〉 .Write.Write (〈字符串〉)(〈字符串〉) 〈对象名〉〈对象名〉 .WriteLine.WriteLine (〈字符串〉)(〈字符串〉) 〈对象名〉〈对象名〉 .WriteBlankLines.WriteBlankLines (〈行数〉)(〈行数〉)

读文本文件的方法读文本文件的方法 〈对象名〉〈对象名〉 .Read.Read (〈字符数〉)(〈字符数〉) 〈对象名〉〈对象名〉 .ReadLine.ReadLine 〈对象名〉〈对象名〉 .ReadAll.ReadAll

Page 190: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 190190页页

例例 8-18-1 的的程序代码程序代码

Private Sub cmdWrite_Click() ‘Private Sub cmdWrite_Click() ‘ 写入按钮写入按钮 Dim fsoMyobj As New FileSystemObject Dim fsoMyobj As New FileSystemObject Dim Ts As TextStreamDim Ts As TextStream Set Ts = fsoMyobj.OpenTextFile("E:\myfile.txt", ForWriting, True)Set Ts = fsoMyobj.OpenTextFile("E:\myfile.txt", ForWriting, True) '' 下面的三条语句将在文本文件中写入三条记录下面的三条语句将在文本文件中写入三条记录 Ts.WriteLine("Ts.WriteLine(" 张 颖 销售代表 女士 复兴门 张 颖 销售代表 女士 复兴门 245 245 号号 ")") Ts.WriteLine("Ts.WriteLine(" 王 伟 副总裁王 伟 副总裁 (( 销售销售 ) ) 博士 罗马花园 博士 罗马花园 890 890 号号 ""

)) Ts.WriteLine("Ts.WriteLine(" 刘英玫 内部销售协调员 小姐 建国门 刘英玫 内部销售协调员 小姐 建国门 76 76 号号 ")") Ts.CloseTs.CloseEnd SubEnd Sub

Private Sub cmdWrite_Click() ‘Private Sub cmdWrite_Click() ‘ 写入按钮写入按钮 Dim fsoMyobj As New FileSystemObject Dim fsoMyobj As New FileSystemObject Dim Ts As TextStreamDim Ts As TextStream Set Ts = fsoMyobj.OpenTextFile("E:\myfile.txt", ForWriting, True)Set Ts = fsoMyobj.OpenTextFile("E:\myfile.txt", ForWriting, True) '' 下面的三条语句将在文本文件中写入三条记录下面的三条语句将在文本文件中写入三条记录 Ts.WriteLine("Ts.WriteLine(" 张 颖 销售代表 女士 复兴门 张 颖 销售代表 女士 复兴门 245 245 号号 ")") Ts.WriteLine("Ts.WriteLine(" 王 伟 副总裁王 伟 副总裁 (( 销售销售 ) ) 博士 罗马花园 博士 罗马花园 890 890 号号 ""

)) Ts.WriteLine("Ts.WriteLine(" 刘英玫 内部销售协调员 小姐 建国门 刘英玫 内部销售协调员 小姐 建国门 76 76 号号 ")") Ts.CloseTs.CloseEnd SubEnd Sub

Private Sub cmdRead_Click() ‘Private Sub cmdRead_Click() ‘ 读取按钮读取按钮 Dim Rec As StringDim Rec As String Dim n As IntegerDim n As Integer Dim i As IntegerDim i As Integer n = InputBox("n = InputBox(" 请输入要读出的记录数请输入要读出的记录数 ")") Print "Print " 姓名姓名 "; Tab(18); ""; Tab(18); " 职务职务 "; Tab(36); ""; Tab(36); " 尊称尊称 "; Tab(54); ""; Tab(54); " 地址地址 "" PrintPrint Dim fsoMyobj As New FileSystemObjectDim fsoMyobj As New FileSystemObject Dim Ts As TextStreamDim Ts As TextStream Set Ts = fsoMyobj.OpenTextFile("i:\myfile.txt", ForReading, True)Set Ts = fsoMyobj.OpenTextFile("i:\myfile.txt", ForReading, True) For i = 1 To nFor i = 1 To n Rec = Ts.ReadLineRec = Ts.ReadLine Print RecPrint Rec NextNext Ts.CloseTs.CloseEnd SubEnd Sub

Private Sub cmdRead_Click() ‘Private Sub cmdRead_Click() ‘ 读取按钮读取按钮 Dim Rec As StringDim Rec As String Dim n As IntegerDim n As Integer Dim i As IntegerDim i As Integer n = InputBox("n = InputBox(" 请输入要读出的记录数请输入要读出的记录数 ")") Print "Print " 姓名姓名 "; Tab(18); ""; Tab(18); " 职务职务 "; Tab(36); ""; Tab(36); " 尊称尊称 "; Tab(54); ""; Tab(54); " 地址地址 "" PrintPrint Dim fsoMyobj As New FileSystemObjectDim fsoMyobj As New FileSystemObject Dim Ts As TextStreamDim Ts As TextStream Set Ts = fsoMyobj.OpenTextFile("i:\myfile.txt", ForReading, True)Set Ts = fsoMyobj.OpenTextFile("i:\myfile.txt", ForReading, True) For i = 1 To nFor i = 1 To n Rec = Ts.ReadLineRec = Ts.ReadLine Print RecPrint Rec NextNext Ts.CloseTs.CloseEnd SubEnd Sub

Page 191: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 191191页页

结束结束

Page 192: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 192192页页

第 第 9 9 章 章 数据库访问数据库访问

Page 193: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 193193页页

学习目标学习目标

了解了解 VBVB 不同的数据库访问方式;不同的数据库访问方式; 掌握掌握 ODBCODBC 数据源的建立方法;数据源的建立方法; 学会使用学会使用 ADOADO 控件对数据库进行访问;控件对数据库进行访问; 掌握掌握 ADOADO 控件的基本属性和方法。控件的基本属性和方法。

Page 194: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 194194页页

9.1 VB9.1 VB数据库访问方法数据库访问方法

可以访问的数据源类型可以访问的数据源类型 JetJet数据库数据库 ISAMISAM数据库数据库 ODBCODBC数据源数据源

VBVB 访问数据库的接口访问数据库的接口 ActiveX ActiveX 数据对象 数据对象 (ADO)(ADO) 远程数据对象 远程数据对象 (RDO)(RDO) 数据存取对象 数据存取对象 (DAO)(DAO)

VBVB 的数据库访问工具和控件的数据库访问工具和控件

Page 195: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 195195页页

9.2 ADO9.2 ADO 控件与数据库的连接控件与数据库的连接

建立建立 ODBCODBC数据源数据源 一个一个 ODBCODBC数据源包括:数据源包括:

数据源名字数据源名字 驱动程序名称(驱动程序名称( Microsoft AccessMicrosoft Access 驱动程序)驱动程序) 数据库连接信息数据库连接信息

ODBCODBC数据源的建立过程数据源的建立过程 打开打开 ODBCODBC数据源管理器数据源管理器 选择数据库驱动程序 选择数据库驱动程序 输入数据源名并选择数据源所要引用的数据库输入数据源名并选择数据源所要引用的数据库 完成完成 ODBCODBC数据源的建立数据源的建立

Page 196: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 196196页页

9.2 ADO9.2 ADO 控件与数据库的连接(续)控件与数据库的连接(续)

【例【例 9-19-1 】利用控制面板中的】利用控制面板中的 ODBCODBC 数据源数据源管理器定义一个名为“管理器定义一个名为“ nw”nw” 的的 ODBCODBC 数据数据源,该数据源引用的是“罗斯文”示例数据源,该数据源引用的是“罗斯文”示例数据库,数据库文件名为“库,数据库文件名为“ Northwind.mdb”Northwind.mdb” ,,存放在存放在 AccessAccess 的安装路径下,如“的安装路径下,如“ C:\ProgrC:\Program Files\Microsoft Office\OFFICE\SAMPLEam Files\Microsoft Office\OFFICE\SAMPLES”S” 文件夹。文件夹。

Page 197: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 197197页页

9.2 ADO9.2 ADO 控件与数据库的连接(续)控件与数据库的连接(续) 建立建立 ADOADO 控件与控件与 ODBCODBC数据源的连接数据源的连接 步骤:步骤:

在窗体在窗体 Form1Form1 中添加一个中添加一个 ADOADO 控件;控件; 打开“属性页”对话框,建立与数据源的连接;打开“属性页”对话框,建立与数据源的连接; 设置记录源,建立与数据源中某个表的连接。设置记录源,建立与数据源中某个表的连接。

【例【例 9-29-2 】建立一个新工程(工程】建立一个新工程(工程 11 )并在窗体)并在窗体 FoForm1rm1 中放入一个中放入一个 ADOADO 控件“控件“ adodc1”adodc1” ,建立该,建立该 AADODO 控件与控件与 ODBCODBC 数据源“数据源“ nw”nw” 的连接,并设置的连接,并设置记录源,完成与罗斯文数据库中的“供应商”表的记录源,完成与罗斯文数据库中的“供应商”表的连接。连接。

Page 198: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 198198页页

9.3 ADO9.3 ADO 控件和其他控件的绑定控件和其他控件的绑定

【例【例 9-39-3 】设计一个窗体,显示罗斯文数据】设计一个窗体,显示罗斯文数据库中供应商表的供应商库中供应商表的供应商 IDID 、公司名称、联、公司名称、联系人姓名、职务和地址等字段的值。系人姓名、职务和地址等字段的值。

用户界面

Page 199: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 199199页页

9.4 ADO9.4 ADO 对象编程概念对象编程概念

所谓的所谓的 ADOADO 对象编程,就是以代码而不是对象编程,就是以代码而不是控件的方式对数据库进行操作。控件的方式对数据库进行操作。

Page 200: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 200200页页

ConnectionConnection 对象对象

ConnectionConnection 对象的创建方法:对象的创建方法: ConnectionConnection 对象的属性和方法对象的属性和方法

ConnectStringConnectString 属性属性 ConnectTimeoutConnectTimeout 属性属性 OpenOpen 方法方法〈〈 connectionconnection 〉〉 .Open.Open 〈〈 ConnectionStringConnectionString 〉〉

[[ ,, 〈〈 UserIDUserID 〉[〉[ ,, 〈〈 PasswordPassword 〉]]〉]]

Page 201: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 201201页页

RecordsetRecordset 对象对象

RecordsetRecordset 对象用于表示来自基本表或者命对象用于表示来自基本表或者命令执行后返回的记录的集合。令执行后返回的记录的集合。

BOFBOF 和和 EOFEOF 属性属性 RecordcountRecordcount 属性属性 AbsolutePositionAbsolutePosition 属性属性 MoveMove 方法方法

Recordset.MoveRecordset.Move 〈〈 NumRecordsNumRecords 〉〉 ,, 〈〈 StartStart 〉〉 MoveFirstMoveFirst ,, MoveLastMoveLast ,, MovePreviousMovePrevious ,,

MoveNextMoveNext 方法方法

Page 202: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 202202页页

RecordsetRecordset 对象(续)对象(续) FindFind 方法方法 Recordset.FindRecordset.Find 〈〈 criteriacriteria 〉[,〈〉[,〈 SkipRowsSkipRows 〉][,〈〉][,〈 ss

earchDirectionearchDirection 〉][,〈〉][,〈 startstart 〉]〉] AddNewAddNew 方法方法 DeleteDelete 方法方法 Recordset.Delete Recordset.Delete 〈〈 AffectRecordsAffectRecords 〉〉 EditEdit 方法方法 UpdateUpdate 方法和方法和 CancelUpdateCancelUpdate 方法方法 CloseClose 方法方法 OpenOpen 方法方法 〈〈 recordsetrecordset 〉〉 .Open .Open 〈〈 SourceSource 〉〉 ,, 〈〈 ActiveConnectionActiveConnection 〉〉 ,, 〈〈 CursorCursor

TypeType 〉〉 ,, 〈〈 LockTypeLockType 〉〉 ,, 〈〈 OptionsOptions 〉〉

Page 203: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 203203页页

利用利用 ADOADO 对象编程访问数据库的步骤对象编程访问数据库的步骤

建立连接数据源;建立连接数据源; 打开打开 RecordsetRecordset 对象;对象; 使用使用 RecordsetRecordset 对象的属性和方法,对数据对象的属性和方法,对数据库进行相应的操作,完成一定的程序功能;库进行相应的操作,完成一定的程序功能;

断开连接。断开连接。

Page 204: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 204204页页

9.5 9.5 用用 ADOADO 控件实现控件实现 ADOADO 对象编程对象编程

ADOADO 控件的常用事件控件的常用事件 WillMoveWillMove 事件和事件和 MoveCompleteMoveComplete 事件事件 WillChangeWillChange 事件和事件和 FieldChangeCompleteFieldChangeComplete 事件事件 WillChangeRecordWillChangeRecord 事件事件 和和 RecordChangeCompleteRecordChangeComplete 事件事件

Page 205: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 205205页页

ADOADO 对象编程实例对象编程实例

【例【例 9-49-4 】以例】以例 9-39-3 为基础,在窗体上添加为基础,在窗体上添加 44 个命个命令按钮:“增加”、“删除”、“更新”和“查询令按钮:“增加”、“删除”、“更新”和“查询”,用于实现记录的插入、删除、保存修改和查询”,用于实现记录的插入、删除、保存修改和查询功能。功能。

用户界面

Page 206: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 206206页页

结束结束

Page 207: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 207207页页

第 第 10 10 章 章 ActiveXActiveX 控件控件

Page 208: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 208208页页

学习目标学习目标

了解了解 ActiveXActiveX 控件的基本概念;控件的基本概念; 掌握掌握 ActiveXActiveX 控件的创建方法;控件的创建方法; 掌握使用状态栏掌握使用状态栏 StatusBarStatusBar 控件添加状态栏控件添加状态栏

的方法。的方法。

Page 209: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 209209页页

10.1 ActiveX10.1 ActiveX 控件简介控件简介

什么是什么是 ActiveXActiveX 控件?控件? ActiveXActiveX 控件的前身就是控件的前身就是 OLEOLE 控件,它是一个控件,它是一个

标准的用户接口元素,是基于标准的用户接口元素,是基于 COMCOM 服务器进行服务器进行操作的,并且可以嵌入在包含容器宿主的应用程操作的,并且可以嵌入在包含容器宿主的应用程序中。序中。

通过 “部件”对话框可以将通过 “部件”对话框可以将 ActiveXActiveX 控件加载控件加载到工具箱中。到工具箱中。

注册注册 ActiveXActiveX 控件控件 regsvr32regsvr32 〈〈 ActiveXActiveX 控件文件名〉控件文件名〉 regsvr32/uregsvr32/u 〈〈 ActiveXActiveX 控件文件名〉控件文件名〉

Page 210: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 210210页页

10.2 10.2 创建创建 ActiveXActiveX 控件控件

创建创建 ActiveXActiveX 控件控件 ActiveXActiveX 控件的设计方式:控件的设计方式:

无到有被完全建立;无到有被完全建立; 建立在另一控件之上;建立在另一控件之上; 将现有的几个控件组装在一起。将现有的几个控件组装在一起。

创建创建 ActiveXActiveX 控件的步骤:控件的步骤: 确定控件的功能,新建确定控件的功能,新建 ActiveX ActiveX 控件工程;控件工程; 设计控件的外观;设计控件的外观; 编写代码;编写代码; 为控件添加属性、事件和方法;为控件添加属性、事件和方法; 如果需要,可以为控件建立属性页;如果需要,可以为控件建立属性页;

Page 211: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 211211页页

应用实例应用实例

【例【例 10-110-1 】创建一闹钟控件,该控件具有显】创建一闹钟控件,该控件具有显示时间、设置闹钟和解除闹钟设置的功能。示时间、设置闹钟和解除闹钟设置的功能。

用户界面

Page 212: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 212212页页

10.2 10.2 创建创建 ActiveXActiveX 控件(续)控件(续) 添加添加 ActiveXActiveX 控件的属性控件的属性

实例:为实例:为 AlarmAlarm 控件添加新的控件添加新的 AlarmAlarm 属性,用该属性可属性,用该属性可设定闹钟的时间。设定闹钟的时间。

WritePropertyWriteProperty 方法的语法:方法的语法: WriteProperty WriteProperty (( PropertyNamePropertyName ,, ValueValue ,, [DefaultValue][DefaultValue] )) 参数:参数:

PropertyNamePropertyName :属性名称;:属性名称; ValueValue :是要保存的值,可以是直接数,但通常是保存属性值:是要保存的值,可以是直接数,但通常是保存属性值

的变量名;的变量名; DefaultValueDefaultValue :是在无用户定义属性的情况下,将写入的默认:是在无用户定义属性的情况下,将写入的默认

值。值。 ReadPropertyReadProperty 方法的语法:方法的语法: ReadProperty ReadProperty (( PropertyNamePropertyName ,, [DefaultValue][DefaultValue] ))

Page 213: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 213213页页

10.2 10.2 创建创建 ActiveXActiveX 控件(续)控件(续)

给给 ActiveXActiveX 控件加载方法控件加载方法

实例:实例: alarmalarm 控件添加一种新方法:控件添加一种新方法: setalarsetalarmm 方法。该方法用于弹出一输入对话框,让方法。该方法用于弹出一输入对话框,让用户输入要设定的闹钟时间,以此快速设定用户输入要设定的闹钟时间,以此快速设定闹钟。闹钟。

Page 214: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 214214页页

10.2 10.2 创建创建 ActiveXActiveX 控件(续)控件(续)

向 向 ActiveXActiveX 控件中添加事件控件中添加事件 激活事件应使用激活事件应使用 RaiseEventRaiseEvent 方法,使用格式如下方法,使用格式如下

:: RaiseEvent RaiseEvent 〈〈 eventnameeventname 〉〔[〈〉〔[〈 argumentlistargumentlist 〉]〕〉]〕 EventnameEventname :指要触发的事件名。:指要触发的事件名。 ArgumentlistArgumentlist :代表参数列表。:代表参数列表。

注册自定义注册自定义 ActiveXActiveX 控件控件

Page 215: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 215215页页

10.3 StatusBar10.3 StatusBar 控件控件

定义:定义: StatusBarStatusBar 控件是包含多个窗格(控件是包含多个窗格( PaPanelnel )的框架,每个窗格上都能显示文本或)的框架,每个窗格上都能显示文本或图片。图片。

每个每个 StatusBarStatusBar 控件都有一个控件都有一个 PanelsPanels 集合,集合,可以在这个集合中添加所需要的可以在这个集合中添加所需要的 PanelPanel ,该,该控件最多可以包含控件最多可以包含 1616 个个 PanelPanel 对象。对象。

Page 216: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 216216页页

10.3 StatusBar10.3 StatusBar 控件(续)控件(续)

【例【例 10-210-2 】设计一应用程序,在窗体上分别有大】设计一应用程序,在窗体上分别有大象、熊猫和老虎三张图片,并有一状态栏,在状态象、熊猫和老虎三张图片,并有一状态栏,在状态栏中显示有当前日期和时间,当鼠标指针指向上述栏中显示有当前日期和时间,当鼠标指针指向上述三张图片时,在状态栏中显示相应动物的名称。三张图片时,在状态栏中显示相应动物的名称。

用户界面

Page 217: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 217217页页

结束结束

Page 218: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 218218页页

第 第 11 11 章 章 综合应用程序开发实例综合应用程序开发实例

Page 219: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 219219页页

学习目标学习目标

根据《学生学籍管理程序》实例,复习巩固根据《学生学籍管理程序》实例,复习巩固前面各章节讲述的基本知识;前面各章节讲述的基本知识;

按照本实例的样式性,掌握如何编写应用程按照本实例的样式性,掌握如何编写应用程序的基本步骤和方法;序的基本步骤和方法;

要求学生根据本实例举一反三,设计出自己要求学生根据本实例举一反三,设计出自己更好的程序来。更好的程序来。

Page 220: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 220220页页

11.1 11.1 系统功能分析和功能模块设计系统功能分析和功能模块设计

任务:实现学生学籍信息管理的规范化和自任务:实现学生学籍信息管理的规范化和自动化。动化。

功能:学生学籍信息的输入、修改和查询。功能:学生学籍信息的输入、修改和查询。 系统的功能模块:系统的功能模块:

Page 221: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 221221页页

11.2 11.2 数据库设计数据库设计

学籍表学籍表

字段名称 数据类型 大小 说明学号 文本 16 主键姓名 文本 10

性别 文本 2

出生日期 /日期 时间班级 文本 20

Page 222: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 222222页页

11.3 11.3 系统主窗体的创建系统主窗体的创建

创建工程项目创建工程项目

应用程序主窗体界面

Page 223: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 223223页页

11.3 11.3 系统主窗体的创建(续)系统主窗体的创建(续)

创建主窗体菜单创建主窗体菜单 创建公用模块创建公用模块

系统菜单设计

Page 224: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 224224页页

11.3 11.3 系统主窗体的创建(续)系统主窗体的创建(续)

菜单设置表

菜单标题 菜单名称 级别(&S)系统设置 mnuSystem 1

(&A)关于系统 mnuAbout 2

- Bar1 2

(&X)退出系统 mnuExi t 2

(&E)学籍管理 mnuEssenti al 1(&N)添加学籍信息 mnuNew 2

- Bar2 2(&M)修改学籍信息 mnuModi Ess 2

- Bar3 2(&Q)查询学籍信息 mnuQueryEss 2

Page 225: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 225225页页

11.4 11.4 学籍管理模块的创建学籍管理模块的创建

功能功能 添加学籍信息添加学籍信息 修改学籍信息修改学籍信息 查询学籍信息查询学籍信息

添加学籍窗体的创建添加学籍窗体的创建

Page 226: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 226226页页

11.4 11.4 学籍管理模块的创建(续)学籍管理模块的创建(续)

修改学籍信息窗体的创建修改学籍信息窗体的创建

Page 227: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 227227页页

11.4 11.4 学籍管理模块的创建(续)学籍管理模块的创建(续)

查询学籍信息窗体的创建查询学籍信息窗体的创建

Page 228: 第  1  章  Visual Basic 概述

第第 11 章讲稿 第章讲稿 第 228228页页

结束结束