分享

广州电大VB网络课程

 春秀心田 2011-02-16
 

《Visual Basic程序设计》重点辅导

第一章  VB语言概述

一、 基本要求

1.掌握VB程序设计的特点。

2.理解可视化设计和事件驱动编程的概念。

二、问题解答

1、VB程序设计的特点是什么?

VB是Windows环境下的应用程序开发工具,其最突出的两个特点是:可视化编程和事件驱动。

VB的另一个显著特点是交互式,所谓交互式是指在编写代码过程中出现语法错误时系统会立即获得通知,并在开发过程中可运行程序进行调试。

2.如何理解可视化编程和事件驱动的概念。

(1)可视化编程

传统的编程方法使用的是面向过程、按顺序进行的机制,其缺点是程序员始终要关心什么时候发生什么事情,应用程序的界面都需要程序员编写语句来实现,对于图形界面的应用程序,只有在程序运行时才能看到效果,一旦不满意,还需要修改程序,因而使得开发工作非常烦琐。用VB进行应用程序开发主要有两部分工作:即设计界面和编写代码。在开发过程中所看到的界面,与程序运行时的界面基本相同,同时VB还向程序员提供了若干界面设计所需要的对象(称为控件),在设计界面时,只需将所需要的控件放到窗口的指定位置即可,整个界面设计过程基本不需要编写代码。概括地说可视化编程就是程序员在开发过程中能看到界面的实际效果。

(2)事件驱动

用VB开发的应用程序,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,如单击鼠标、键盘输入等事件。也可以由来自操作系统或其它应用程序的消息触发。这些事件的顺序决定了代码执行的顺序。概括地说事件驱动是指应用程序没有预定的执行路径,而是由程序运行过程中的事件决定。

 

第二章  VB6.0 集成开发环境

一、基本要求

1.掌握窗体、工程窗口、属性窗口、代码编辑器窗口的功能与使用。

2.掌握VB编程的基本步骤,会设计简单的VB程序。

3.理解对象、属性、事件和方法的概念及其之间的关系。

4.了解工具箱中各种控件的功能与使用。

二、问题解答

1.VB可视化编程的一般步骤是什么?

一般步骤是:

(1)设计界面

 先建立窗体,再利用控件在窗体上创建各种对象。

(2)设置属性

 设置窗体或控件等对象的属性。

(3)编写代码

2.什么是对象、属性、事件和方法?

(1)对象:从广义上来说,对象是客观事物的一个实体。在可视化编程语言中,对象分为两类,一类由系统设计,可以直接使用或对其进行操作,如工具箱中的控件、窗体和菜单等,另一类由用户定义。

(2)属性:属性是一个对象的特性,不同的对象有不同的属性。对象常见的属性有标题(Caption)、 名称(Name)、颜色(Color)、字体(Font) 、是否可见(Visible)等。通过修改对象的属性,可以改变对象的外观和功能。

(3)事件:所谓事件就是发生在对象上的事情。在VB中,系统为每个对象预先定义好了一系列的事件。例如单击(Click) 事件、双击(Dbclick)事件、装入(Load)事件、改变(Change)事件、鼠标移动(MouseMove)事件、获取焦点(GotFocus)事件等。对象的事件是固定的,用户不能建立新的事件。当事件由用户触发(如单击)或由系统触发(如装入时),对象就会对该事件作出响应,响应某个事件后所执行的程序代码就是事件过程。

例如:命令按纽Command1的Click(单击)事件过程为:

 Private Sub Command1_Click()

     Form1.BackColor=vbRed

 End Sub

 过程中的代码Form1.BackColor=vbRed表示将窗体的背景颜色设置成红色。运行时,用鼠标单击命令按纽Command1,就会执行该事件过程,将窗体的背景颜色设置成红色。

(4)方法:在面向对象的程序设计中,引入了称为方法(Method)的特殊过程和函数供用户直接调用。如对象打印(Print)方法、显示窗体(Show)方法、清除(Cls)方法、移动(Move)方法等。用户可直接调用,不能进行修改。

例如:FirstForm.print"欢迎使用Visual Basic"

该语句使用.print方法在名称为FirstForm的窗体上显示字符串"欢迎使用Visual Basic"。

3.对象、事件和方法三者之间的关系如何?

在VB编程中,完成某种功能可通过触发对象事件和调用对象方法,而触发事件和调用对象方法都必须基于某个对象。触发某个事件实际上就是执行一个事件过程代码段,在该代码段中又可以随意调用对象方法,而调用对象方法不可能触发某个事件。

 例如:在窗体上添加一个命令按纽,编写一个响应Command1的单击(Click)事件过程如下:

 Private Sub Command1_Click()

    Command1.Caption="显示窗体" 

    Form2.Show

End Sub

上述代码段表明单击对象按钮Command1触发单击事件,即执行上述代码。在执行上述事件过程中又调用了显示窗体(Form2)的方法。

 4.属性和方法有何区别和联系?试举例说明。

对象的属性是描述对象的一组特征。如设置对象的名称、标题、颜色、大小等,有的可直接在设计界面时通过属性窗口进行设置,有的可以在事件过程或通用过程代码中进行设置。对象的方法是在对象上实施某种操作的功能,不能在设计界面时调用对象方法,一般在过程代码中可随意调用,根据需要还可以添加适当的参数。设置对象属性和调用对象方法均可在代码设计中进行,其一般格式为:

 对象名.属性名=属性值                        (设置对象属性)

 对象名.方法名                               (调用对象方法)

 5.VB6.0的三种工作模式和功能是什么?

VB6.0的三种工作模式和功能是设计模式、运行模式和中断模式。

 设计模式:可以进行用户界面的设计和代码的编写。

运行模式:运行应用程序,此时不可以编辑代码,也不可以编辑界面。

中断模式:应用程序运行暂时中断,此时可以编写代码,但不可以编辑界面。

第三章  程序设计基础

一、 基本要求

1.了解VB中定义的13种标准数据类型。

2.掌握变量、常量的概念及其数据类型。掌握变量的命名规则,理解变量声明的含义。

3.掌握数组(包括静态数组与动态数组)的概念与声明。

4.理解记录类型(用户自定义类型)的定义。

5.掌握各种运算符与表达式的含义和应用,掌握运算符的优先级。

6.掌握赋值语句、注释语句、条件分之语句(If Then、If Then Else、If Then ElseIf、Select Case)、循环语句(Do…Loop、For…Next、For Each…Next、While…Wend)的含义及书写格式。

7.理解常见标准函数(交互式函数、类型转换函数、数学函数、日期和时间函数、字符串函数、目录和文件函数)的用途。

二、问题解答

 1.VB定义了哪几种数据类型?变量有哪几种数据类型?常量有哪几种数据类型?

解答:数据是程序的必要组成部分,也是程序处理的对象。在各种程序设计语言中,数据类型的规定和处理方法是各不相同的。Visual Basic不但提供了系统定义的数据类型,而且还允许用户定义自己的数据类型

在VB6.0定义了13种数据类型,它们是整型、长整型、单精度浮点型、双精度浮点型、货币型、字节型、变长字符串、定长字符串、布尔型、日期型、对象型、可变类型(数值)、可变类型(字符)。

变量是指在程序运行过程中其值可以改变的量,变量的数据类型如下:

         

  常量是指在程序运行期间其值不发生变化的量。常量的数据类型有:字符串常量、数值型常量、布尔型常量、日期型常量。

在VB中有两种形式的常量,即直接常量和符号常量。符号常量又可分为系统内部常量和自定义常量。

直接常量是指在程序代码中,以直接明显的形式给出的数,根据常量的数据类型分,有上述四种数据类型的常量。例如:

"欢迎使用Visual Basic"  '字符串常量

 12345                     '数值型常量

 True                        '布尔型常量

 #11/10/2002#         '日期型常量

 系统内部常量是应用程序和控件提供的,这些常量的定义可以从"对象浏览器"中获得。如VbBlue所表示的颜色值为&HFF0000, 描述为蓝色。

 自定义常量是为方便用户开发而引入的符号常量。自定义常量使用关键字Const进行声明。例如:

 Const Pi = 3.14159        ¢声明符号常量Pi为3.14159 ,单精度型。

2.变量的命名规则是什么?

解答:VB变量的命名规则如下:

第一个字符必须是字母。

长度不超过255个字符。

不可以包含小数点或者内嵌的类型声明字符。

不能使用关键字。

不能与过程名或符号常量同名。

3.如何声明变量?

解答:

(1)隐式声明

变量可以不经声明而直接使用,此时该变量为可变类型变量。在可变类型变量中,可以存放任何类型的数据,如数值、字符串、日期和时间。虽然这种方法很方便,但常会导致难以查找的错误。所以一般采用显示声明变量的方法。

(2)显示声明

格式:Dim|Private|Static|Public<变量名> [As <类型>]

Dim:在窗体模块、标准模块或过程中声明变量。

Private:在窗体模块或过程中声明变量,使变量仅在该模块或过程中有效。

Static:在过程中定义静态变量,即使该过程结束,也仍然保留变量的值。

Public:在标准模块中声明全局变量,使变量在整个应用程序中有效。

如:   Dim Sum As Long         ¢声明变量Sum为长整形

为了保证所有变量都能得到声明,可以使用VB的强制声明功能,这样,只要在运行时遇到一个未经明确声明的变量名,VB就会发出错误警告。要强制显示声明变量,可在窗体模块或标准模块的声明段中加入语句:Option Explicit

应当注意的是:Option Explicit语句的作用范围仅限于语句所在模块,所以对每个需要

强制显示变量声明的窗体模块、标准模块及类模块。必须将Option Explicit语句放在这些模块的声明段中。

全局变量是可以在工程中的所有程序模块使用的变量,使用关键字Public声明的变量可以被工程中的任一窗体、任一模块中的任一过程或函数使用。全局变量的声明只能位于标准模块的声明部分。

4.数组、静态数组和动态数组的声明。

(1)数组是有序数据的集合。数组的定义语法如下:

Dim 数组名 ([[下标下界To]下标上界])[As数据类型]

(2)静态数组是指数组元素的个数是固定不变的,即它们占用的内存空间大小是固定不变的。

(3)动态数组是指在程序执行过程中数组元素的个数可以改变的数组。

5.在VB中有几类运算符和表达式?

运算是用来对运算对象进行各种运算的的操作符号,而表达式是由多个运算对象和运算符组合在一起的合法算式。在VB中有6类运算符和表达式:

算术运算符和算术表达式

字符串运算符(连接运算符)和字符串表达式

关系运算符和关系表达式

布尔运算符(逻辑运算符)和布尔表达式

日期运算符和日期表达式

对象运算符和对象表达式

用的最多的主要是前四种。

(1)算术运算符和算术表达式

优先级

算术运算符

运算

算术表达式例子

结果

1

^

 乘方

3^2

9

2

-

取负

- 4

-4

3

*

乘法

3*6

18

3

/

浮点除法

10/3

3.33333333333

4

\

整数除法

10\3

3

5

Mod

取模

10Mod3

1

6

+

加法

3+4

7

6

-

减法

3-4

-1

 

(2) 字符串运算符(连接运算符)和字符串表达式

字符串运算符有两个:"&"、"+",其作用都是将两个字符串连接起来,合并成一个新的字符串。

 "&"会自动将非字符串类型的数据转换成字符串后再进行连接,而"+"则不能自动转换。例如:

  "Hello"&"World"          结果为" Hello World" 

 "Check"&123          结果为" Check123"

 "Check"+123                错误

(3)关系运算符和关系表达式

关系运算符用于对两个表达式的值进行比较,比较的结果为布尔值True (真)或False(假)。

运算符

运算

关系表达式例子

结果

=

等于

2=3

False

<>或><

不等于

2<>3

True

大于

2>3

False

小于

2<3

True

>=

大于等于

2>=3

False

<=

小于等于

2<=3

False

 

(4)布尔运算符(逻辑运算符)和布尔表达式

布尔运算符两边的表达式要求为布尔值。布尔表达式的结果值仍为布尔值。

布尔运算符

优先级

运算符

运算

说明

例子

结果

1

Not

当表达式为假时,结果为真。

Not(3>8)

True

2

And

当两个表达式均为真时,结果才为真,否则为假。

(3>8)And(5<6)

False

3

Or

当两个表达式均为假时,结果才为假,否则为真。

(3>8)Or(5<6)

True

4

Xor

异或

当两个表达式同时为真或同时为假时,结果为假,否则为真。

(3<8)Xor(5<6)
(3>8)Xor(5<6)

False
True

5

Eqv

等阶

当两个表达式同时为真或同时为假时,结果为真,否则为假。

(3<8)Xor(5<6)
(3>8)Xor(5<6)

True
False

6

Imp

蕴含

当第一个表达式为真,且第二个表达式为假时,结果为假,否则为真。

(3<8) Imp(5>6)

False

 

(5)日期型表达式

日期型表达式由算术运算符"+"、"-"、算术表达式、日期型常量、内存变量和函数组成。日期型数据是一种特殊的数值型数据,它们之间只能进行"+"、"-"运算。有下面三种情况:

两个日期型数据相减,结果是一个数值型数据(两个日期相差的天数)。例如:

     #12/19/1999#-#11/16/1999#         '结果为数值型数据:33

一个表示天数的数值型数据可加到日期型数据中或从日期型数据中减掉,其结果仍然为一日期型数据。

  6.运算符的优先级。

 解答:数值运算符和字符串运算符®关系运算符®布尔运算符

例如:设a=3,b=5,c=-1,d=7,则以下表达式按标注①~⑩的顺序进行运算。

     

 

第四章 窗体和基本输入、输出

一、 基本要求

1.掌握Print方法和与Print方法有关的Tab函数和Spc函数,InputBox函数、MsgBox函数和语句的使用方法。

2.理解函数调用和Format函数。

二、问题解答

1.如何用 Print方法输出数据?

Print方法用于在窗体、图片框、打印机和立即窗口等对象上输出数据。

Print方法的格式为:

[对象] .Print expressionlit

对象可以是窗体、图片框、打印机等或立即窗口,如果省略"对象名",则在当前窗体上输出。

例如:

Picture1.print"Visual Basic"      '在图片框Picture1中显示:"Visual Basic"

Print"Visual Basic"             '在当前窗体中显示:"Visual Basic"

Debug. print"Visual Basic" '在立即窗口中显示:"Visual Basic"

Expressionlit可以是算术表达式、字符串表达式、关系表达式或布尔表达式,多个表达式之间的分隔符为逗号或分号。

Print方法的特点

(1)Print方法具有计算和输出双重功能,对于表达式先计算后显示。例如:

Print"aa"&"bb";-5*6;Not2<=3         '显示:aabb-30False

(2) Print方法有两种显示格式:分区格式和紧凑格式。

当各表达式之间用逗号作为分隔符时,则按分区格式显示数据项,以14个字符位置为单位把一个输出行分成若干区段,每个区段输出一个表达式的值。当各表达式之间用分号作为分隔符时,则按紧凑格式输出数据,后一项紧跟前一项输出,但要在每个数值后面增加一个空格,如果数值为正值,将把正号显示为空格。例如:

Private Sub Form_Activate()

Print "12345678901234567890"

 Print "2+4="; 2 + 4

Print "2-4=", 2 - 4

End Sub

输出结果:

12345678901234567890

2+4= 6

2-4=          -2

(3)一般情况下,每执行一次Print方法都要自动换行,即每次执行Print时,都会在新的一行上输出数据。如果要在同一行上输出数据,则可以在末尾加上分号或逗号。当使用分号时,下一个Print输出的内容将紧跟在当前Print所输出的信息后面;如果使用逗号,则在同一行上跳到下一个显示区段显示下一个Print所输出的内容。例如:

Private Sub Form_Activate()

Print "12345678901234567890"

 Print "2+4="; 2 + 4,

 Print "2-4=";

 Print 2 - 4

End Sub

输出结果:

12345678901234567890

2+4=6         2-4=-2

(4)如果Print后不用任何项,则输出一个空行,或者取消前面Print末尾的逗号或分号的作用。例如:

Private Sub Form_Activate()

 Print "12345678901234567890"

Print              '产生空行

Print "2+4="; 2 + 4,

Print              '取消上面一句末尾逗号的作用,使下一个Print在新的一行输出

Print "2-4=";

Print 2 - 4

End Sub

输出结果:

12345678901234567890

2+4= 6

2-4=-2

(5) Print方法在Form-Load事件过程中不起作用。若要在Form-Load事件中显示数据,必须使用Show方法或者把AutoRedraw属性设置为True。

前面的例子可改为:

Private Sub Form_Load()

Form1.Show

 Print "12345678901234567890"

Print "2+4="; 2 + 4,

Print "2-4=";

 Print 2 - 4

End Sub

输出结果:

12345678901234567890

2+4=6         2-4=-2

2.与Print方法有关的函数

(1)Tab函数

格式:Tab(n)

表示在指定的第n个位置上输出数据。

例如:

Private Sub Form_Activate()

Print "12345678901234567890"

 Print "Hello"; Tab(10); "World"    '第二个输出项在第10列输出

 Print "Hello"; Tab; "World"        'Tab函数无参数,第二个在第二个打印区列输出

 Print "Hello"; Tab(4); "World"     'n小于当前位置,第二项在下一行输出

  Print Tab(-5); "Hello"            'n小于1,在第一列输出

End Sub

输出结果:

12345678901234567890

Hello     World

Hello         World

Hello

World

Hello

(2)Spc函数

格式:Spc (n)

功能;跳过n个空格

例如:

Print "Hello"; Spc (4); "World"

输出结果:Hello    World

3.InputBox函数

InputBox函数显示一个能接受用户输入的对话框,等待用户输入数据,并返回用户在对话框中输入的信息。

4.MsgBox函数

MsgBox函数提供的是输出对话框,显示"错误"、"指示"、"警告"之类的简短信息以及"确定"、"取消"等按钮。

5. Format函数

Format函数可以使数值、日期或字符串按指定的格式输出。

 

第五章  常用控件

一、 基本要求

1.掌握标签, 文本框, 命令按钮, 单选按钮, 复选框, 列表框、滚动条、  图片框、框架的使用方法,能够利用这些控件通过设置其属性在窗体上设计应用程序界面。

2.理解对话框、组合框、计时器、Image控件的基本用法。

二、各种控件的属性

1.标签(Label)控件

标签(Label)用于显示用户不能编辑、修改的文本。主要用来显示提示信息,可以用作标题、栏目或输入输出区域的标识,也可作为结果信息输出区域,常与Text控件一起使用。其主要属性为:

                                                    标签控件的属性

属性

说明

Name

用于标识窗体、控件的名称。每一个控件均有该属性,以后不再重复。

Caption

标签的标题,缺省情况下标签控件中唯一可见的部分。

BorderStyle

用于设置标签的加框形式,0-标签不带边框,1-带一个立体边框。

BackColor

设置标签的背景色。

BackStyle

设置标签的背景模式,1-标签不透明,0-标签透明。

ForeColor

设置Caption的颜色。

Font

设置Caption的字体。

Alignment

设置Caption的排列方式,0-左对齐,1-居中对齐,2-右对齐。

AutoSize

用于是否自动改变标签的尺寸以适应其内容,若该属性设为True,标签就会根据Caption属性的内容进行水平变化。

WordWrap

为了使Caption属性的内容自动换行并垂直扩充,应将该属性设为True。此时AutoSize也应为True。

 

2.文本框(TextBox)控件

文本框(TextBox)通常用来显示用户输入的信息,常作为接收用户输入的接口。或在设计及运行时为其Text属性赋值,起信息输出的作用。TextBox控件显示的文本一般是可以被用户编辑、修改的。其主要属性为:

                                                    文本框控件的属性

属 性

说 明

Text

文本框中包含的文本内容。

MultiLine

该属性值为True时可以接收多行文本。此时,PassWordChar属性将不起作用。

ScrollBars

0-没有滚动条,1-水平,2-垂直,3-同时具有水平及垂直。

PassWordChar

指定显示在文本框中的替代符,如一串"*"号等,主要用于口令输入。

MaxLength

指定显示在文本框中的字符数,超出部分不接收。

Locked

决定控件是否可编辑。

 

3.命令按钮(CommandButton)控件

命令按钮常常用接收用户的操作信息,激发相应的事件过程。它是用户与程序交互的最简便的方法。

                                                   命令按纽控件的属性

说 明

Caption

按纽的标题,即显示在按纽的文本

Font

设置Caption字体、字体样式及大小等

Default

该属性为True时,指定它为窗体的缺省按纽

Cancel

该属性为Ture时,指定它为窗体的缺省取消按纽

Style

0-按纽的外观是标准Windows风格,1-允许带有自定义图片

Picture

Style为1时,指定粘贴到按纽上的图形文件

DownPicture

Style为1时,指定按纽按下时显示的图形文件

DisabledPicture

Style为1时,指定按纽无效时显示的图形文件

Eabled

该属性设为False时,表示控件不可用,呈暗色显示

Visible

该属性设为False时,表示控件不可见

 

 

 

4.单选按纽(OptionButton)控件

  OptionButton用于提供一个可以打开或者关闭的选项。在使用时,一般将几个选项按纽组成一组,在同一组中,用户只能选择其中的一项。

                                                OptionButton控件的常用属性

属 性

说 明

Value

表示按纽的状态。Value属性为True时,表示选择了该按纽,为False时,表示没有选择该按纽。Value属性的缺省值为False。

Alignment

决定按纽中文本的对齐方式。0-Left Justify时表示左对齐,1-Right Justify时表示右对齐。

 Style

用于控制选项按纽的外观

Enabled

该属性的值若被设为False,表示对应的选项被禁止,运行时将灰色显示。

 

5.复选框(CheckBox)控件

 CheckBox 与 OptionButton的作用差不多,只是CheckBox允许用户从程序提供的多个选项中选中一个或多个选择。CheckBox组中某个选项被选中时,其它选项不会失败。

6.列表框(ListBox)控件

该控件用于显示项目列表,从列表中可以选择一项或多项。如果项目总数超过了可显示的项目数,Visual Basic会自动给列表框加上滚动条。

                                          列表框控件的属性

属 性

说 明

Style

设置列表框的外形

List

设置添加到列表框中的选项内容

Columns

指定列表框中的列数。0-垂直滚动单列,1-水平滚动单列,大于1-水平滚动多列。滚动条在列表框容纳不下项目时会自动出现。

listIndex

它是一个只读属性,用于设置或返回当前选定项目的索引值。

ListCount

它是一个只读属性,用于返回列框中项目的数量

 Sorted

该属性为True时,可以将列表项目按字母顺序排列。

Selected

在程序运行时选中列表框中的选项。

 

7.组合框(ComboBox)控件

组合框(ComboBox)与列表框(ListBox)的功能基本相同,只是组合框允许用户输入未出现在指定项目中的项目,并可以将选项折叠起来,以节省控件占用空间

8.滚动条(Hscrollbar和VScrollbor)控件

水平滚动条(HScrollbar)和垂直滚动条(VScrollbor)通常被用作独立的输入控件,连续地调整数据。

                                          滚动条控件的属性

属 性

说 明

LargeChange

该属性值决定当用户单击滚动条时,定位纽几个单位

SmallChange

该属性的值决定当前用户单击滚动条两端的箭头时,定位纽几个单位

Value

该属性值决定滚动条的当前值(是一个整数)

Max 、Min

这两个属性决定Value的最大值和最小值

 

9.框架(Frame)控件

Frame控件的主要作用是作为容器安放其它控件对象,将这些控件对象分成可标识的控件组。

                                         框架控件的属性

属 性

说 明

Caption

设置框架的标题,通常用来说明组名称

Font

设置框架标题的字体

ForeColor

设置标题文字的颜色

Enabled

设置框架是否可用。若设为False,框架的标题将灰色显示,且框架中其它控件同时被禁用。

 

10.图片框(PictureBox)控件

                                        图片框控件的主要属性

属 性

说 明

AutoSize

该属性设为Ture时,图片框能自动调整大小与显示的图片匹配。

Align

该属性设为1、2、3、4 时作为容器的图片框将粘贴到窗体的四周。

AutoRedraw

该属性设为Ture后可以将图形方法的输出显示到控件上,并在调整图片框大小或移去遮挡图片框的对象时,自动重绘输出的图片。

 

11.图像框(Image)控件

                                     图像框控件的属性

属 性

说 明

Stretch

该属性设为Ture时可以使图片自动扩展以适应控件的尺寸,该属性为False时控件自动调整大小。

 

PictureBox和Image控件均可以用来显示图像,支持的图像文件格式有:位图、图标、图元文件、增强型图元文件、JPEG和GIF文件。

PictureBox和Image控件的主要区别为:

1.PictureBox除了可以显示图形以外,还可以作为其它控件的容器。用户可以通过剪贴板给PictureBox添加图形。它不能延伸图形以适应控件的大小,但可以自动调整控件的大小以显示完整的图形。

2.Image控件只能用于显示图片,可以延伸图片的大小以适应控件的大小。但支持的属性、事件、和方法较PictureBox少一些。

12.计时器(Timer)控件

计时器(Timer)控件可用于实现每隔一定的时间间隔执行指定的操作,运行时不可见,所以在设计时可以将其画在窗体的任何位置上。

                                        计时器控件的属性

属 性

说 明

Enanled

该属性为True时,计时器开始工作,为False时暂停。

Interval

该属性用来设置计时器触发的周期,以毫秒计,取值范围为0~64767。

 

第六章  工程与程序管理

一、 基本要求

1.掌握工程、工程文件的概念以及工程文件的组成。

工程是构成应用程序文件的集合。

工程文件是与工程相关联的所有文件和对象以及所设置的环境信息的一个简单的列表,所有文件和对象也可以被其它的工程所共享。工程文件的扩展名是.vbp,可以将几个工程.vbp文件组成一个工程组.vbg文件。

工程文件通常由三类模块组成,即窗体模块、标准模块和类模块。

2.掌握创建、打开、使用和保存工程的方法。会添加、删除和保存工程文件,设置工程属性。

3.掌握在工程中添加和删除控件的方法

在 Visual Basic中,可以同时打开多个工程。在建造和测试有关用户创建的控件时,这种功能很有用。在装入了多个工程时,【工程资源管理器】窗口的标题将变成"工程组",而所有打开的工程部件都会显示出来。

 

第七章  VB应用程序结构

一、基本要求

1.理解VB中三种类型的模块:窗体模块、标准模块和类模块。

在建立VB应用程序时,应该首先设计代码的结构。VB将代码存储在3种不同的模块中:窗体模块、标准模块和类模块。在这三种模块中都可以包含:声明和过程,它们形成了工程的一种模块层次结构,可以较好地组织工程。

(1)窗体模块

窗体模块包含窗体和代码两部分,窗体部分就是程序运行的界面各种元素及其属性,代码部分包括通用过程和窗体上各种对象的事件过程。窗体模块保存在扩展名为.frm的文件中。

(2)标准模块

标准模块完全由代码组成,这些代码不与具体的对象相关联,一般用来定义全局变量和公用过程和函数。标准模块保存在扩展名为.bas的文件中,缺省时应用程序不包含标准模块。

(3)类模块

类模块的文件扩展名.cls。在类模块中可以建立新对象,这些新对象可以包含自定义的属性和方法,可以在应用程序内的过程中使用。类模块与标准模块的不同之处在于:标准模块仅仅含有代码,而类模块既含有代码又含有数据。

2.掌握Sub过程、事件过程、通用过程、Function 过程的含义。

过程:一个应用程序是由若干模块组成的,而每个模块又是由若干个更小的代码片段组成,将组成这些模块的代码片段称为过程(Procedure)。

子过程:子过程是在响应事件时执行的程序段。

在VB中有三种过程:Sub(子)过程、Function(函数)过程和Property(属性)过程。

(1)Sub过程

Sub过程是没有返回值的一段程序代码,可以是模块中相对独立的一个结构。Sub过程又称子过程。

Sub过程的语法如下:

Private?Public?Friend?Static?Sub 过程名[(参数表)]

    [程序段]

    [Exit Sub]

    [程序段]

End Sub

在VB中,有两类子(Sub)过程:事件过程和通用过程。

事件过程:是在响应事件时执行的代码块。事件过程是由VB自动给出的,如

 Private Sub Form_Click()

    语句组

End Sub

通用过程:是指分离的、相对独立的子过程,通常用来完成某一功能,被其它过程调用。通用过程由用户自己创建。在一个过程中,通用过程可以被其他过程调用。

调用Sub过程

定义好一个Sub过程之后,要让其执行,则必须使用Call语句调用该过程,有两种方法:

①<过程名>(<实参表>)如:Call MyProc (FirstArgument, SecondArgument)

②<过程名>(<实参表>)   如:MyProc FirstArgument, SecondArgument

注意:当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号。

(2)Function 过程

Function 过程是具有返回值的一段程序代码,可以是模块中相对独立的一个结构。Function 过程通常又称为函数。

Function过程的语法如下:

    Private?Public?Friend?Static?Function Name[(Arglist)] [As数据类型]

    [程序段]

    [Name=Expression]

    [Exit Function]

    [程序段]

    [Name=Expression]

End Function

与Sub过程一样,Function过程也是一个独立的过程,可读取参数,执行一系列语句并改变其参数的值。与子过程不同的是,Function过程可返回一个值到调用的过程。

调用Function过程

 调用一个Function过程的方法和调用内部函数的方法相似,只要在表达式中通过使用函数名,并在其后用圆括号给出相应的参数列表即可。

二、例题解析

例1.编写一个Sub过程,计算N个数的和,即1+2+…+N,并通过命令按纽的单击事件调用该过程计算S=1+(1+2)+(1+2+3)+…+(1+2+3+…+K)。

分析:用Sub过程计算1+2+…+N,首先需要设置参数N,另外需要引入一个参数S,用于返回该和值。程序如下:

Public Sub A1(N As Integer, S As Long)

     S = 0

    For J = 1 To N

     S = S + J

    Next J

End Sub

Private Sub Command1_()

    Dim K As Integer, S1 As Integer, I As Integer

    K = Val(Text1.Text)

    For I = 1 To K

    Call A1(I, S1)       '调用过程A1求1+2+…+I,和值返回到S1中

    Sum = Sum + S1

    Next I

    Text2.Text = Sum

End Sub

例2.从键盘上任意输入一个整数,然后调用一个计算n!的Function过程计算其阶乘数。使用文本框输入数据,用标签输出数据。设计界面和运行界面如下所示:

 

代码如下:

Option Explicit

Function Fact(N As Integer) As Long

     Dim I As Integer, F As Long

     F = 1

     For I = 1 To N

     F = F * I

     Next I

     Fact = F          '给函数过程名赋值

End Function

Private Sub Command1_Click()

    Dim X As Integer

    X = Val(Text1.Text)

    Label2.Caption = Trim(Str(X)) & "的阶乘数为:"

    Label3.Caption = Trim(Str(Fact(X)))    '使用Fact(X)调用函数过程

End Sub

 

第八章 菜单程序设计

一、 基本要求

1.掌握菜单编辑器的使用,能通过菜单的代码设计修改菜单。掌握菜单的有效属性、可见属性、复选属性的用法,会创建动态菜单和菜单控件数组。

2.理解弹出菜单、分隔条和工具栏的设计

二、练习题

1.菜单分为_________菜单和_________菜单,菜单总与____________相关连,设计菜单需要在____________中设计。

2.不可以给____________级菜单设置快捷键。

3.菜单控件只包含一个____________事件。

4.菜单编辑器的"标题"选项对应于菜单控件的____________属性。

菜单编辑器的"名称"框对应于菜单控件的____________属性。

菜单编辑器的"索引"选项对应于菜单控件的____________属性。

菜单编辑器的"复选"选项对应于菜单控件的____________属性。

菜单编辑器的"有效"选项对应于菜单控件的____________属性。

菜单编辑器的"可见"选项对应于菜单控件的____________属性。

5.要在菜单中建立分隔条,应在菜单编辑器的___________选项中键入一个_____符号。

6.为了能够通过键盘访问主菜单项,可在菜单编辑器的"标题"选项中的某字母前插入符号_______。运行时,该字母会带有下划线,按Alt键和该字母就可以访问相应的主菜单项。

7.每次单击菜单编辑器中的"?"按纽可以使选定的菜单项_________________。

8.为显示弹出式菜单,可以使用______________方法。

9.弹出式菜单在___________中设计,且一定要使其___________级菜单不可见。

10.要使用工具栏控件设计工具栏,应首先在"部件"对话框中选择________________,然后从工具箱中选择___________控件。

11.设置工具栏控件的___________属性可以改变工具栏在在窗体上的位置。

12.要给工具栏按纽添加图像,应首先在___________控件中添加所需要的图像,然后在工具栏的属性页中选择与该控件相关联。

13.要使用状态栏控件设计状态栏,应首先在"部件"对话框中选择________________,然后从工具箱中选择___________控件。

14.在打开一个自定义对话框时,可以使用_______方法来决定对话框窗体的显示模式。

15.用户可以通过设置菜单项的___________属性值为False来使该菜单不可见。

 答案:

 1.下拉式 弹出式 窗体 菜单编辑器

 2.顶

 3.Click

 4.Caption Name Index Checked Enabled Visible

 5.标题

  6.&

 7.向下移一个等级

 8.PopupMenuu

  9.菜单编辑器 顶

 10.Microsoft Windows Common Controls6.0 ToolBar

  11.Align

 13.Microsoft Windows Common Controls6.0 StatusBar

 14.Show

  15.Visible

 

第九章 应用程序窗体设计

一、 基本要求

1.会利用ActiveX控件进行窗体的界面设计(见9.1节)。

2.掌握多窗体程序设计常用的方法(Load方法、Show方法、Hide方法和Unload方法)

多窗体是指应用中有多个窗口界面,这些窗口分别显示在屏幕上,它们之间没有绝对的从属关系。当然,窗口之间存在着出现的先后顺序和相互调用的关系。在多重窗体中每个单独的窗体都依照应用功能分类进行设计,所以整个程序的功能会更加协调,相互之间的逻辑关系更加容易为用户理解的方式体现出来。

一般说来,多窗体的设计的基本方法分成以下几个步骤:

S1:分析应用要求,将其功能划分为不同的几部分;

S2:分别创建各个窗体、模块;

S3:在创建窗体时,除各窗体自身要完成的功能外,还要考虑窗体之间的调用关系;

S4:点击【工程】/【属性】菜单,在【启动对象】中选择应用运行时首先执行的对象;

S5:运行应用程序,检验应用及各窗体的运行情况。

在多窗体的程序设计中经常要用到下面四种方法:Load方法、Show方法、Hide方法和Unload方法。详细参见9.2.1节。

3.理解多文档界面(MDI)的概念。

多文档界面(Multiple Document Interface)是指在一个父窗口下面可以同时打开多个子窗口。子窗口归属与父窗口,如果父窗口关闭,则所有子窗口全部关闭。

4.理解MDI应用程序中的菜单设计。

在 MDI 应用程序中,每一个子窗体的菜单都显示在 MDI 窗体上,而不是在子窗体本身。当子窗体有焦点时,该子窗体的菜单(如果有的话)就代替菜单栏上的 MDI 窗体的菜单。如果没有可见的子窗体,或者如果带有焦点的子窗体没有菜单,则显示 MDI 窗体的菜单。详见9.3.2节

二、练习题

1.MDI是指________________________________界面。

2.要将某窗体定义为一个MDI子窗体,需要将其,需要将其________属性设置为True。

3.一个应用程序最多可以有__________个MDI父窗体。

4.在运行时,MDI父窗体中的子窗体最小化时,其图标将显示在__________中。

5.WindowList属性只应用于MDI窗体和MDI子窗体,它对__________窗体不起作用。

6.使用Load 方法调用的窗体被__________,并显示出来,同时会产生一个____________________事件。

7.使用Show方法会显示被调用的窗体如果在调用Show方法之前没有把窗体调入内存,那么调用Show方法会____________________。

8.使用Hide方法会隐藏被调用的窗体,但是在调用Hide方法之后不会把窗体____________________,被调用的窗体中的属性等已处于__________。

9.使用Unload方法会从内存中__________被调用的窗体,同时,窗体中的变量和属性等都会处于__________,在移去窗体的同时会产生一个____________________事件。

10.当MDI窗体的NegotiateToolbars属性设为True,则对象的工具栏出现在____________________上,如果NegotiateToolbars属性设为False,则对象的工具栏就为____________________。

练习题答案:

1.多文档

2.MDIChild

3.1

4.MDI父窗体

5.标准

6.存入内存 Form_Load()

7.自动地把窗体调入内存

8.移出内存 无效状态

9.移去 Form_QueryUnload()

10.MDI父窗体 不固定的调色板

 

第十章 文件处理

一、 基本要求

1.掌握DriveListBox控件、DirListBox控件、FileListBox控件和CommDialog控件,会利用这些文件控件来设计程序。

DriveListBox(驱动器列表框):其常用事件为Change。当选择一个新的驱动器或通过代码改变Drive属性的设置时触发该事件。

DirListBox(目录列表框):通过显示一个树型的目录来列出当前驱动器下的分层目录,当用鼠标双击某一目录时,将打开该目录并显示其子目录。目录列表框的常用事件为Change事件,当双击一个目录项或通过代码改变Path属性的设置时触发该事件。

FileListBox(文件列表框):文件列表框是一个带滚动条的列表框,用来显示特定目录下的文件。当用户单击或双击文件列表框中的文件时,激活Click事件或DbClick事件。

CommDialog(公共对话框控件):其功能是提供一组标准的操作对话框,可以使用它进行打开和保存文件、设置打印机选项等。

2.掌握KillFileCopyRmDirShellName语句的功能和用法。

Kill语句的功能是从磁盘中删除文件,其语法结构为:Kill pathname

FileCopy语句的功能是复制一个文件,其语法结构为:FileCopy source,destination

RmDir语句的功能是删除一个存在的而且为空的的目录或文件夹,其语法结构为:

RmDir path

Shell语句的功能是执行一个可执行文件,同时返回一个Variant,若成功,则代表这个程序的任务ID,若不成功,则返回零。其语法结构为:Shell(pathname[,windowstyle])

Name语句功能是重新命名一个文件、目录或文件夹,其语法结构为:

Name oldpathname As newpathname

3.理解文件系统的分类、顺序文件、随机文件、二进制文件、文件系统对象的概念

文件的分类

按照文件的存取方式及其组成结构可以分为两种类型:顺序文件、随机文件;

按照文件的数据编码方式来分可以分为ASCII码文件和二进制文件;

按照文件的特征属性来分可以分为系统文件、隐藏文件、只读文件、普通文件和存档文件;

按照文件的数据性质来分可以分为程序文件和数据文件。

顺序文件:通常指的是普通的文本文件,文件中的字符包括文本字符及控制字符,如","(Chr(14))、换行符"CR,LF"、"Chr(13))"、"Chr(10)"等。数据是以ANSI代码保存。它是一条条记录按照顺序进行存放,每条记录的长度可以按照实际的需要变化。

由于这类文件的信息是按照顺序从头到尾按顺序排列,而且只提供第一条记录的存储位置,所以对其中的数据信息进行处理是相当困难的。

所以一般的顺序文件只用于要求少量空间,不经常进行数据修改的有规律的文件。 参见10.4.1节。

随机文件: 随机存取设置在存取相同长度的数据记录,每一数据记录内可以设计各种栏位以容纳不同的数据。此种文件数据是以二进制的位的形式保存在磁盘上。 参见10.4.2节。

二进制文件: 二进制文件与随机文件类似,唯一不同是不必限制于固定长度,你可以用喜欢的方式来存取文件。 参见10.4.3节。

4.了解文件系统对象编程。

FSO 对象模型编程包括三项主要任务:

(1)使用CreateObject 方法,或将一个变量声明为 FileSystemObject 对象类型来创建一个 FileSystemObject 对象。

(2)对新创建的对象使用适当的方法。

(3)访问该对象的属性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多