分享

第二篇 应用环境

 nxhujiee 2010-09-08

VB环境应用

实验题目:

熟悉VB环境

实验目的:

1.掌握VB6.0的启动与退出。

2.了解VB6.0的集成开发环境,熟悉各主要窗口的作用。

3.了解VB6.0应用程序的开发过程。

4.理解VB中对象的概念。

5.掌握在VB6.0中使用帮助的方法。

实验指导

进入VB可视化集成开发环境后,将出现一个新建工程窗口,如果选取【标准EXE】,则会出现如图2.1所示界面,这就是编程环境。

在屏幕上边横栏为菜单栏包括程序开发过程中需要的命令。在屏幕左边为工具箱窗口,它提供用于开发VB应用程序的各种控件。屏幕中间位置为窗体,它是用户的工作区,是生成应用程序的编辑窗口,是放置其他控件的一个容器。一个程序可以有多个窗体,但它们必须有不同的名字,以免运行时发生错误。默认状态下窗体分别以Form1 Form2 Form3,……命名,程序员也可以创建新名字。屏幕右下边为属性窗口,所有窗体或控件的属性都可以通过属性窗口来修改。

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 


2.1  VB 6.0集成开发环境

屏幕右边中上位置为工程资源管理器窗口,采用层次结构列出组成这个工程的所有文件。另外还有几个隐藏的窗口,分别是调色板窗口、代码窗口、调试窗口、对象浏览器窗口和菜单编辑窗口。可以进行程序设计、编辑、编译和调试等。

利用VB的开发环境和开发工具,用户可以轻松地开发出具有一定功能的Windows应用程序。应用程序设计设计阶段4个步骤1建立应用程序界面(2)设置界面对象属性3编写代码4保存文件,注意在保存文件时与当前工程相关的所有的窗体文件、模块文件等都要保存,否则工程迁移的时候就会运行不正常。当设计工作完成后,运行程序看程序设计是否实现了预期的目标。当程序运行正常后,应该再一次存盘,保存该工程文件。最后我们可以根据需要把程序制作成可以独立运行的.EXE文件。这个应用程序可脱离VB 6.0中文版环境单独运行。

实验内容

1.练习Visual Basic 6.0的启动与退出。

2.熟悉Visual Basic 6.0的集成开发环境,了解各主要窗口的作用。

3.创建一个简单的VB应用程序,要求在窗体上显示“欢迎进入Visual Basic 6.0

4.练习在Visual Basic 6.0中使用帮助的各种方法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验二  Visual Basic语言基础

实验题目:

熟悉VB继承环境

实验目的:

⒈ 掌握Visual Basic的数据类型和变量定义方法;

    ⒉ 正确使用Visual Basic的运算符和表达式;

    ⒊ 掌握Visual Basic中数据输入、输出的方法;

    ⒋ 掌握Visual Basic 常用函数的使用方法;

    ⒌ 学会用赋值语句构造简单的顺序结构程序。

实验指导

查看教材上标识符命名规则、运算符、变量、常量等相关内容,正确使用运算符、常量和变量。

实验内容:

    1.在窗体上显示下列表达式的值(设Amt变量为字符型,值为"a"Bmt变量为整型,其值为3)。

        Bmt3         Bmt+23       - Bmt       Bmt-12 

Bmt*Bmt      10/Bmt       10\Bmt      9 Mod Bmt

Amt & Bmt        Amt > Bmt

    2. 在窗体上显示下列函数的运行结果。

        cos45°                      e3                   |-5|

        ④ 字符"b"对应的ASCII码值      ⑤ 系统日期和系统时间

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验三  VB的三种控制结构程序设计

实验题目:

实践VB的三种控制结构

实验目的:

1.  掌握VB中三种控制结构语句的使用

实验指导

VB中基本语句:

1.  赋值语句

VB中赋值语句有两种:

(1)    对普通变量的赋值:变量=表达式

如:Dim a As Integer
a=100*20

(2) 对对象变量的赋值:Set 变量=表达式
如:Dim ex As DataBase
    Set  ex=OpenDataBase("File.mdb")

2.  If语句

    If语句用于测试条件,根据测试结果执行不同的操作。格式如下:
If
表达式 Then
语句
Else
语句
End If
或:
If
表达式 Then 语句1:语句2: ..

3.  Select Case语句

Select Case 语句用于对某一表达式的值进行多种处理。格式如下:
Select Case
表达式
Case
1
语句
Case
2
语句
Case Else
语句
End Select

4.  For循环语句

   For...Next用于指定次数的循环。格式有两种:
1)普通的数字变量:
     For var=start To end[Step step]
        
语句
     Next var
2)集合中的对象:
     For Each obj In objs
        
语句
     Next obj
其中:obj 是对象变量。 Objs 是集合变量。

5.  Do 循环语句

  根据某一条件来决定是否循环时我们使用Do循环。Do 循环有两种:
1)当型循环(先判断后执行)
     Do While|Until
条件
        
语句
     Loop

2)直按型循环(先执行后判断)
Do
  
语句
Loop While|Until
条件
[
]While 当条件为 True 时循环。 Until 当条件为 True 时退出。

6.  With语句

当我们经常使用某一对象的属性、方法时,就可以使用With语句。With语句可以使代码更简捷,

并能提高运行速度。格式如下:

With 对象变量

语句

End With

例如:With Text1
                     .SelStart=0
                     .SeiLength=Len(.Text)
                     .SetFocus
                  End With

实验内容

    1.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积及圆柱体积。用InputBox函数输入数据,结果在文本框中输出。请编写程序。

    2.公用电话收费标准如下:通话时间在3分钟以内,收费0.5元;3分钟以上,则每超过1分钟加收0.15元。编写一段程序,计算某人通话S分钟,应缴多少电话费。

3.求 (即1+2+3+...+10!

实验四  数组和字符串的使用

实验题目:

VB环境中操作数组和字符串

实验目的

    1.掌握数组的声明和数组元素的引用;

    2. 掌握固定数组和动态数组的使用方法;

3. 学会利用数组解决一些较为复杂的问题。

4. 熟悉字符串变量和字符串数组的定义和引用;

    5. 学会常用字符串函数的使用方法;

6. 学会字符串的基本操作。

实验指导:

1、数组

静态数组的定义的定义格式如下:

Dim  数组名([lower To ] upper[[lower To ] upper])[As type]

带有空括号的Dim可以声明一个动态数组,例如:

Dim dynArray()

在需要指定数组大小时,再用ReDim语句定义动态数组的维数和元素个数。申请或重申请存储空间的一般格式为:

ReDim [Preserve ]数组名([lower To]upper [[lower To]upper])[As Type]

其中,Preserve为可选项,表示是否保护己有数据。缺省时为不保护。数组名后括号中的数字是为数组分配的实际元素个数(数组长度)-1

2、字符串操作常用函数

·Left$(字符串,个数):取出字符串左边指定个数的字符,若个数大于或等于字符串长度,则全取。

·Right$(字符串,个数):取出字符串右边指定个数的字符,若个数大于或等于字符串长度,则全取。

·Mid$(字符串,起始位置[,个数]):取出字符串由起始位置开始的指定个数的字符。若起始位置大于字符串长度,返回0长度串"",若个数为默认值时,则取出从起始位置开始的所有字符。

·Len(字符串或字符串变量):计算字符串长度,若字符串为空时,返回Null。该函数不能确定用自定义类型声明的变长字符串的实际存储字节长度。

·UCase$(字符串):将字符串的小写字母转换为大写字母,其他字符不变。若字符串为Null时,返回Null

·LCase$(字符串):将字符串的大写字母转换为小写字母,其他字符不变。若字符串为Null时,返回Null

·Space$(个数):返回指定个数的空字符串。

·String(个数,字符) 返回包含重复字符的字符串,长度由"个数"指定,重复字符由"字符"指定,当"字符"为串时,用串的第一个字符。

·StrComp(字符串1,字符串2[,比较类型]):按比较类型比较两个字符串,返回值为:相等时为0;小于时为 –1;大于时为 1

·StrReverse(字符串):将给定字符串逆序输出。若为空串,返回空串,若为Null,则会出错。

实验内容


    1.输入整数n,显示出具有n行的杨辉三角形。一个具有10行的杨辉三角形运行结果如图所示。

提示:利用TAB函数定位每行显示的起始位置。为了便于显示,可将显示内容放在图形框中(PictureBox)。

2.编写一段程序,对输入的字符串进行识别,找出其中大写字母、小写字母、空格、数字及其它字符的个数,并按图示的样式输出。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验五  过程和函数

实验题目:

VB中操作过程和函数

实验目的

1.  掌握子过程和函数的定义和调用方法。

2.  分清子过程和函数过程的异同

3.  掌握递归概念和使用方法

4.  掌握变量、函数和过程的作用域。

5.  掌握形参和实参的对应关系,分清值传递和地址传递的区别

 

实验指导:

过程过程(Procedure)是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使程序更清晰、更具结构性。VB提供了四种过程:Sub 过程、Function 函数、Property 属性过程和 Event 事件过程。

1Sub过程

1)定义Sub过程

可以在窗体或模块的代码窗口输入Sub过程名,VB会自动产生一个过程体,然后只需要添入相应代码即可。

(2对于过程的调用有两种方式

一种调用方式是: 过程名 参数1 ,参数2

另一种方式用Call调用: Call 过程名(参数1,参数2…)

2 Function 函数

函数过程的定义语法是:

[Private |Public][Static]Function 函数过程名(参数表)[As类型]

[语句]

End Function

与子过程不同的是,Function过程可向调用过程返回一个值。

在调用函数时可以有两种方式:

· 把它看成一个数,即可以放在赋值号右端。

· 可直接作为参数出现在调用过程或函数中。

3.向过程传递参数

(1) 按值传递参数

按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用 ByVal 关键字指出参数是按值来传递的。

(2) 按地址传递参数

按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在 VBasic 中是缺省的。

3)使用可选的参数

在过程的参数列表中列入 Optional 关键字,就可以指定过程的参数为可选的。如果指定了可选参数,则参数表中此参数后面的其它参数也必是可选的,并且要用 Optional 关键字来声明。

Property 属性过程和 Event 事件过程请查询相关资料。

实验内容

1.编写子过程,对于已知正整数,判断该数是否时回文数。所谓回文数是指顺读与倒读数字相同,即最高位与最低位相同,此高位与次低位相同,依次类推。当只有一个数时,也认为是回文。程序要求输入一系列,每输入一个,就判断一个,并输出所输入的回文数。

2.编写一个函数过程DeleSte(S1,S2),将字符串s1中出现的s2字符串删除,结果还存放在s1中。例如:字符串s1="12345678AAABBDFG12345",字符串S2="234",结果为s1="15678AAABBDFG15"

提示:

⑴ 在s1字符串中s2字符串,可利用InStr()函数,考虑到s1中可能存在多个或不存在s2字符串,用Do While Instr(s1,s2)>0循环结构来实现。

如果在s1中找不到s2字符串,首先要确定s1字符串的长度,因s1字符串在进行多次删除时,长度在变换;然后通过Left()Right()函数的调用删除s1中存在的s2字符串。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验六  VB的窗体

实验题目:

创建和操作窗体

实验目的

1.掌握VB6.0窗体的常用属性、常用事件和重要方法。

2.掌握在Visual Basic 6.0窗体上生成控件的方法。

3.掌握设置启动窗体的方法。

4.了解窗体的生命周期。

实验指导:

窗体的常用属性

属性名称

含义

Name

用于在属性窗口定义对象的名称,以便在程序中引用。它只能在设计时赋值。
对于任何一个可以在属性窗口设置其属性的对象必须设置该属性的值,VB自动为每一个对象给定一个缺省值。

Captiion

属性用于获取、设置窗体的标题

BorderStyle

用于设置窗体的边框。
它常用的有两个值:
普通窗体:可修改窗体的尺寸。
2-Sizable
对话框:不能修改窗体的尺寸。
3-FixedDialog

Top,Left,Width,Height

它们分别表示该窗体在父窗体或屏幕的位置(Top,Left)和大小(Width,Height)。

ScaleTop,ScaleLeft,

ScaleWidth,ScaleHeight

它们分别表示该窗体工作区的位置和大小

窗体的常用方法

FormX.Show[vbModal]

显示一个窗体。
没有vbModal表示以非模式方式显示一个窗体。
带有vbModal表示以模式方式显示一个窗体。

FormX.Hide

隐藏一个窗体。隐藏窗体并不把窗体从内存中卸载,要卸载窗体需要使用语句。
Unload FormX
或:UnLoad Me (Me 表示当前窗体)

窗体的常用事件

Load 事件

当窗体加载到内存时发生
Private Sub Form_Load()
... '
常把初始化代码放在此处
End Sub

Resize 事件

当窗体改变其尺寸时发生
Private Sub Form_Resize()
... '
常在此处修改其它控件的尺寸
End Sub

Unload 事件

当窗体从内存卸载时发生
Private Sub Form_Unload(Cancel As Integer)
... '
在窗体卸载前做一些扫尾工作。
'
如关闭文件、提示存盘等
End Sub

[参数]Cancel 表示:是否放弃卸载。带进来时=0,表示可以卸载。在代码中将其0,表示放弃卸载。

实验内容

1.新建一个工程,然后分别对窗体的CaptionMaxButtonMinButtonControlBoxMoveableBorderstyleIconShowInTaskbar的属性进行设置,记录设置后窗体的状态和效果。

2.利用窗体的Show方法和Hide方法,显示或隐藏窗体。

3.在一个工程中建立多个窗体,然后设置其中一个为启动窗体。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验七  VB的常用控件

实验题目:

使用VB的常用控件

实验目的

1.掌握标签、命令按钮、文本框、单选钮、检查框列表框、组合框、框架、时钟、滚动条等控件常用属性、重要事件和基本方法。

2.熟练掌握在窗体上创建上述控件的操作方法

3.掌握事件过程的代码编写。

4.了解VB中的键盘事件、鼠标事件和拖曳事件等过程的编写。

实验指导:

 

Label控件

Label 控件主要用于在窗体中显示提示信息,常与Text控件一起使用。

属性:

Caption 表示标签的内容。
例:Label1.Caption="N&ame:"
控件在窗体中显示Name:,&号跟的字母是快捷键字母,即当我们按下Alt+A时,Label1Click事件将会发生。
这种快捷键定义方法对于菜单和许多其它控件同样适用。

Font 表示控件的字体。

ForeColor 表示控件的当前颜色。

Enabled 表示控件是否使能。
=True
使能。
=False
禁止(控件显示为灰色)

Visible 表示控件是否可见
=True
可见。
=False
不可见。

Top,Left,Width,Height 表示控件在窗体中的位置和尺寸。

事件:

Click 当点击或按下快捷键时发生,常用于使和它一起使用的Text控件获得输入交点。
例:
Private Sub Label1_Click()
Text1.SetFocus
End Sub

Text控件

Text控件接受用户的输入的字符串数据。

属性:

Text 表示用户输入的内容。
例:Label1.Caption=Text1.Text
Text1控件接收用户输入的数据通过Label1控件显示出来。

SelStart 表示用户选中一段文字的起始位置。第一个字符位置为0

SelLength 表示用户选中文字的长度。

SelText 表示用户选中文字的内容。

例:0123456789
这时:SelStart=5,SelLength=4,SelText="5678"

MultiLine 表示是否是多行输入。
=True
是多行输入。
=False
不是多行输入(缺省)

ScrollBars 多行情况下是否需要滚动条。
=0
没有。
=1
有水平。
=2
有垂直。
=3
水平、垂直都有。

Password 表示口令字符。Text属性返回用户输入数据,屏幕上显示该字符。

方法:

SetFocus 使当前控件获得输入交点。

事件:

KeyPress 当在控件上按下按键时发生。
Private Sub Text1_KeyPress(KeyAscii As Integer)
End Sub
KeyAscii
表示用户按键的ASCII码,如果在事件中将它改为0,则认为没有按键。
例:编写只允许输入数字的Text控件。
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii<Asc("0") Or KeyAscii>Asc("9") Then
KeyAscii=0
End If
End Sub

Change 当控件内容改变时发生。

LostFoucus 当控件失去输入交点时发生。

GotFoucus 当控件获得输入交点时发生。
通常我们在Text控件获得输入交点时全选它的内容,方便用户直接修改数据。
代码如下:
Private Sub Text1_GotFocus()
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
End Sub

CommandButton控件

CommandButton控件接受用户的命令。

属性:

Caption 表示按钮所显示的内容
例:Command1.Caption="&OK"

事件:

Click 当点击或按下快捷键时发生。

CheckBox控件

CheckBox控件检查某个选项是否被选中。

属性:

Caption 表示检查框所提示的内容。
例:Check1.Caption="Windows &98":Check2.Caption="Windows &NT"

Value 表示检查框是否被选中。
=0
未选中。
=1
选中。
例:Check1.Value=1:Check2.Value=0

事件:

Click 当点击或按下快捷键时发生。

OptionButton控件

OptionButton控件检查一个选项是否被选中,它与CheckBox的区别是:
CheckBox
是多选多项。
OptionButton
是多选一项。

属性:

Caption 表示检查框所提示的内容。
例:Option1.Caption="":Option2.Caption=""

Value 表示检查框是否被选中。
=False
未选中。
=True
选中。
例:Option1.Value=False:Option2.Value=True

事件:

Click 当点击或按下快捷键时发生。

Frame控件

Frame控件主要用于为OptionButton控件分组。

属性:

Caption 表示分组所提示的内容。
例:Frame1.Caption="性别":Frame2.Caption="民族"

ListBox控件

ListBox控件用于在一组列表中选择其中的一项或多项。

属性:

Text 表示当前操作项内容。

ListCount 表示当前列表框中总数据项数。

ListIndex 表示当前操作项下标,第1项=0

List(i) 表示第i项表项内容。

MultiSelect 表示是否允许多选择。

Selected(i) 表示第i项是否被选中。

SelCount 表示被选中的项数。

Sort 表示是否排序。

方法:

AddItem 向列表框增加一项数据。
ListX.AddItem(Item As String)

RemoveItem 删除第i
ListX.RemoveItem(i As Integer)

事件:

Click 当点击列表框中的一项数据时发生。

ComboBox控件

ComboBox控件与ListBox基本相同,它的优点在于占用的面积小,除了可以在选项中选择外还可以输入其它数据。它的缺点是不能多选择。

属性:

Text 存放从选项中选择的数据或用户输入的数据。
其它方法与事件和ListBox相同。

Image控件

Image控件用于显示一张图片。

属性:

Picture 存放图片的数据。
通常我们使用LoadPicture函数读入一张图片。
例:ImageX.Picture=LoadPicture("C:\1.bmp")
[
]LoadPicture支持BmpJpgGif、等多种格式图片文件。

Stretch 显示图片的方式。
=True
以控件的尺寸显示图片。
=False
以图片的原尺寸显示图片。

Timer控件

Timer控件以固定间隔时间名触发它的Timer事件。

属性:

Enabled 表示是否起动计时器。
=True
启动。
=False
关闭。

Intertval 表示触发Timer事件的间隔时间以毫秒为单位,即:10001秒。

事件:

Timer当计时器计时到间隔时间时发生。

实验内容

1.新建一个工程,在窗体上添加若干控件,然后分别对控件的常用属性NameCaptionHeightWidthTopLeftEnabledVisibleFontNameFontSizeBackColor等进行设置,记录设置后控件的状态和效果

2.设计一个利用滚动条来调节字体大小的程序。从组合框选择字体,通过滚动条来调节文本框中字体的大小并在窗体上的标签显示出字体的大小。

3利用时钟控件建立一个定时器。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验八  VBActiveX控件

实验题目:

学习在VB中使用ActiveX控件的方法

实验目的:

1.了解ActiveX控件和可插入对象的一般操作方法。

2. 了解常用ActiveX控件的编程方法。

实验指导:

 

(Class)和对象(Object)

ActiveX服务器是以对象为单位提供服务的,所以,我们要在服务器中定义类。
类是对象的模板,对象是类的实例
例如:人类是一个类,它定义了人的基本特征。张三、李四就分别是人类的两个实例。
类是抽象的,而实例是确实存在的。

类:

在工程菜单中选择增加类模块,就向工程增加一个类。修改类的Name属性,就修改了类的名称。

类事件:

Initialize 创建类的新实例时发生。

Terminate 将对象设置为Nothing时发生。

我们通常在Initialize事件中初始化数据,而在Terminate事件中做一些扫尾工作。

向类增加属性

1.增加公有变量

例如:向工程增加一个类,设置Name属性为ClassEx,在它的通用说明部分增加如下代码:
Public s As String
在客户程序中定义对象,使用属性。
Dim obj As New ClassEx
obj.s = "ABCDEFG"
Label1.Caption=obj.s

2.增加属性过程

当我们需要只读或只写属性,或者除了给属性赋值,还需要执行一段代码时,就使用属性过程。使用属性过程通常要定义一个局部变量保存其数据值。
属性过程有两种:读属性写属性
如果一个属性即定义了读属性又定义了写属性,它就是一个可读写的属性。

定义读属性:

Dim XXXX As Type
Public Property Get
属性名() As Type
...
属性名=XXXX
End Property

定义写属性:

Public Property Let[Set] 属性名(参数 As Type)
XXXX=
参数
...
End Property

Let 用于普通数据类型。

Set 用于对象类型。

向类增加方法

增加公有过程(函数和子程序)
Public Sub Proc1(...)
...
End Sub

Public Function Fun1(...)As Type
...
End Funciton

在客户一端:
Dim obj As ClassEx
obj.Proc1...

ActiveX服务器中的类属性

ActiveX服务器中类增加了两个属性:

Instancing 说明该类是单用户还是多用户
=SingleUse
单用户,即客户中每声明一个类实例,将启动一个服务器应用程序。
=MnltiUse
多用户,所有对象使用一个服务器应用程序。
注:这个属性必需在设计时设置。进程内服务器只能设置为多用户

实验内容

1.在窗体上建立ImageListToolBar控件,自己查找若干图标,加入到工具栏中,单击这些图标后,由信息框弹出特征文字。

2.设计一个滚动条控制进度条进程的程序。在窗体上建立一个滚动条和一个进度条,调节滚动条时,进度条随之变化

 

 

实验九  VB对话框设计

实验题目:

学习对话框控件的使用方法

实验目的:

    1. 熟悉通用对话框的使用。

2. 熟悉对话框的设计。

实验指导:

CommandDialog控件

CommandDialog控件包括了Windows操作系统提供的6种公用对话框。(仅介绍前四种对话框)
Open
Save Color Font Printer Help

Open对话框 和 Save对话框

属性:

Filename表示选择的文件名(含路径)。

Filter决定列什么样的文件。

格式:说明|过滤|说明|过滤|...
例:Filter="Text|*.txt|Picture|*.bmp;*.gif"

方法:

ShowOpen弹出Open对话框。

ShowSave弹出Save对话框。

例:打开一个正文文件,把文件名赋给变量fn
Dim fn As String
CDlg1.Filter="Text|*.txt"
CDlg1.ShowOpen
fn=CDlg1.Filename

Color对话框

属性:

Color选择的颜色。

方法:

ShowColor弹出Color对话框。
例:修改标签控件的Label1颜色。
CDlg1.Color=Label1.ForeColor
CDlg1.ShowColor
Label1.ForeColor=CDlg1.Color

Font对话框

属性:

Flags决定字体的集合。

FontBold是否加粗。

FontItalic是否斜体。

FontName字体名称。

FontSize字体大小。

方法:

ShowFont弹出Font对话框。
例:修改标签控件Label1的字体。
CDlg1.FontName=Label1.FontName
CDlg1.FontSize
=Label1.FontSize
CDlg1.Flags=cdlCFScreenFonts
CDlg1.ShowFont
Label1.FontBold=CDlg1.FontBold
Label1.FontItalic=CDlg1.FontItalic
Label1.FontName=CDlg1.FontName
Label1.FontSize=CDlg1.FontSize

实验内容

设计应用程序,运行效果如图17.6

功能描述:

当用户单击“打开”按钮时,启动打开对话框,选择文本文件,在文本框中显示出来;单击“字体”按钮时,启动字体对话框,选择合适的字体属性改变文本框的字体及颜色;单击“保存”按钮时,启动保存对话框,将文件保存。单击“退出”按钮时,退出程序。

 

提示:打开文件方法

    Open CommonDialog1.FileName For Input As #1

    Do While Not EOF(1)

        Line Input #1, inputdata

        Text1.Text = Text1.Text + inputdata + Chr(13) + Chr(10)

    Loop

    Close #1

保存文件方法

    Open CommonDialog1.FileName For Output As #2

    Print #2, Text1.Text

    Close #2

 

实验十  VB菜单设计

实验题目:

学习设计顶端菜单和弹出式菜单的编辑和操作方法

实验目的:

1. 掌握VB中的菜单设计方法。

2. 掌握VB中菜单命令代码的编写方法。

3. 了解VB快捷菜单设计方法。

实验指导

要设计菜单就得先打开菜单编辑器窗口,打开的方法有下面三种:

1、执行“工具”菜单中的“菜单编辑器”命令。

2、直接用快捷键“Ctrl+E”。

3、单击工具栏上的工具按钮。

菜单编辑器窗口的组成如下:

1、标题

它是一个文本框,用来输入菜单标题或菜单项显示在窗体上的标题。输入的内容同时在窗口的最下面文本区显示出来。

2、名称

每个菜单项必须有一个控件名,在名称文本框中输入的字符是VB5使用的控件名。它是不会在窗体中显示出来的,而是在程序中用来标识各种菜单项控件。

3、索引

用于将几个菜单项共用一个控件名称,组成控件数组。

4、快捷键

用于建立菜单项的快捷菜单。当我们需要为某菜单项建立快捷键时,单击该框右侧的向下箭头,便会下拉一个列表框,从中选择所需的快捷键。

5、帮助上下文ID

用于制作帮助菜单时,该项属性为帮助文件的ID号,通过它可以找到帮助文件中相应的帮助主题的标题。

6、协调位置

每个单独的菜单控件都具有该属性,它决定在激活对象的菜单时,窗体顶层菜单如何在窗体中。包括四个选项:

0(None):(缺省值)窗体的菜单不在菜单栏中显示。

1(Left):窗体的菜单在菜单栏的左边位置显示

2(Middle):窗体的菜单在菜单栏的中间位置显示。

3(Right):窗体的菜单在菜单栏的右边位置显示。

7、“复选”框

它决定是否允许在菜单项的左边设置复选标记。

8、“可见”复选框

此选项决定是否让菜单在程序运行时是否被显示。

9、“有效”复选框

此选项决定是否让菜单项对事件做出响应。

10、“显示窗口列表”复选框

MDI(多文档)应用程序中,确定菜单控件是否包含一个打开的MDI子窗体列表。

11、四个箭头按钮

右箭头和左箭头:表示当前设计的菜单是主菜单还是子菜单。即为菜单层次选择按钮。上箭头和下箭头表示将菜单赤示文本区中选中的菜单项与其上边或下边菜单项之间交换位置,也就是说被选中的菜单项上移或下移了。

12、“下一个”命令按钮

它将选定移动到下行,表示当前菜单项已建好,换行再创建下一个菜单项。

13、“插入”命令按钮

单击插入命令按钮,可以在当前被选中的菜单项前插入一个新的空白菜单项。

14、“删除”命令按钮  用于删除选中的菜单项。

实验内容

1.  利用菜单编辑器创建“文件”和“编辑”菜单,编写相应源代码程序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验十一  数据库操作

实验题目:

使用控件访问数据库

实验目的:

1.           掌握创建数据库的方法

2.           掌握数据控件的使用方法

3.           掌握控件的数据绑定技术

4.           掌握数据库记录集的操作方法

实验指导:

数据控件

Connect属性:指定打开的数据库类型,并且包括参数,如用户和口令等。

DatabaseName属性:确定数据控件访问哪一个数据库。[]:对于多表数据库它为具体的数据库文件名。对于单表数据库它为具体的数据库文件所在的目录,而具体文件名放在RocordSouce属性中。

RecordSource属性确定数据控件的记录集,即:所要访问的数据内容。它可以是一个表名存储查询名或一条SQL语句。[]:当我们在运行时修改了该属性后,需要调用Refresh方法刷新记录集。

Refresh方法:当我们在运行时修改了RecordSource属性后,需要调用该方法刷新记录集。

UpdateRecord方法:将绑定在数据控件上的控件的数据写入数据库中,即:当我们修改了数据后调用该方法确认修改。

CancelUpdate方法:将数据库中数据从新读到绑定在数据控件上的控件中,即:当我们修改了数据后调用该方法放弃修改。

Validate事件:当我们移动记录集记录指针时发生。

Sub XXXX_Validate(Action As Integer,Save As Integer) 其中:
Action 指出如何产生了该事件,如:移动、增加、查询等。
Save 表示是否保存已修改的数据。
当我们修改了绑定在数据控件的数据,以没有调用UpdateRecord,而要移动指针时,Save=True。如果在事件中令Save=False,则放弃修改。

Reposition事件:当我们移动记录集记录指针时发生。通常我们在该事件中显示当前的指针位置。

记录集(RecordSet

记录集是记录控件所引用得整个记录的集合。

BOF属性:当记录集记录指针指向起始之前返回True

EOF属性:当记录集记录指针指向结尾返回True

AbsloutePositon属性:返回当前记录集记录指针,第一条记录为0只读属性

BookMark属性:String类型。返回或设置当前记录集记录指针的书签,可读写[]:程序中使用BookMark属性重定位记录指针,而不能使用AbsloutePositon属性。

AddNew方法:向记录集增加一条新记录。

Delete方法:从记录集中将当前记录删除。在删除后常使用MoveNext方法移动指针。

MoveFirst方法:将记录集指针移动到第一条记录上。

MoveLast方法:将记录集指针移动到最后一条记录上。

MovePrevious方法:将记录集指针移动到前一条记录上。

MoveNext方法:将记录集指针移动到下一条记录上。

FindFirst方法:在记录集中查询附合条件的第一条记录。

FindLast方法:在记录集中查询附合条件的最后一条记录。

FindPrevious方法:在记录集中查询附合条件的前一条记录。

FindNext方法:在记录集中查询附合条件的下一条记录。

绑定控件

我们可以将普通控件绑定在数据控件上,来完成自动地显示、更新记录集的数据。
常用的可绑定的控件有:LabelTextCheckBoxImage等。通过设置这些控件的DataSourceDataField属性来完成绑定。

DataSource 属性表示绑定到哪一个数据控件上,程序中我们可能使用多个数据控件。

DataField 属性表示绑定到记录集的哪一个记录上。

 

实验内容:

1.通过“Microsoft Access”和VB6中的“可视化数据库管理器”分别建立数据库stud.mdb,其中有一个数据表student,并在数据表中输入记录。该数据表的结构如下:

字段名

类型

长度

学号

String

7

班级

String

8

姓名

String

8

性别

String

2

年龄

Integer

 

2利用数据库记录集的方法实现显示、修改、添加和删除记录的功能。界面如下图所示。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实验十二  多文档界面设计

实验题目:

设计多文档界面

实验目的:

1.      掌握简单的MDI应用程序的设计方法

2.      了解多文档文本编辑器的设计方法

实验指导:

多文档界面,如 Word ,允许用户同时打开多个文件进行操作。在多文档界面中,有一个窗体叫做主窗体(又称为 MDI 窗体),其他窗体称为子窗体。子窗体始终处在主窗体内部,主窗体的位置移动会导致子窗体的位置发生相应变化。图一
一、多文档程序的建立:
多文档程序至少有两个窗体,一个主窗体和一个子窗体或多个子窗体,主窗体是其他窗体的容器。
1
、创建一个新工程,然后选择工程/工程属性菜单命令,加入“MDI窗体”:
2、在项目窗口中双击 Form1 切换到 Form1 ,然后将其 MDIChild 属性设为 True 

3、按 F5 键运行程序

4、控制程序的打开状态:如果要让程序打开时自动载入 Form1 窗口,那么在工程属性窗口中选择启动对象 Form1 ;如果不想显示子窗体,那么只需在启动对象中选择 MDIForm1 就行了。
5
、子窗体的显示:假设工程的启动对象为 MDIForm1 ,可以在主窗体中加入菜单,或者直接用 Load 的方法,如下:
Private Sub MDIForm_Load()
Form1.Show 0
End Sub
这段代码将 Form1 显示出来,并呈非模态模式。
二、主窗体与子窗体的标题:
当主窗体与子窗体都呈显现状态时,把子窗体最大化,你会发现窗体的标题变成了主窗体标题加上子窗体标题。
三、主窗体与子窗体的菜单:在 VB 中,如果子窗体载入,那么主窗体的菜单将被子窗体的菜单替换;只有当主窗体中没有子窗体时才能显示主窗体的菜单。

实验内容:

1建立一个应用程序,程序中有一个MDI窗体,通过MDI窗体的“文件”菜单中的“新建文档”菜单项可建立一个文档窗口作为MDI窗体的子窗体,在此子窗体可进行文本编辑。通过菜单可建立多个文档窗口,也可进行编辑文档内容、关闭文档等操作。


实验十三  文件的基本操作和文件的读写

实验题目:

vb中操作文件

实验目的:

1.掌握DriveListBoxDirListBoxFileListBox等文件控件的使用方法

2.掌握用传统方式进行文件复制、移动、删除及重命名等基本方法

3.掌握顺序文件、随机文件和二进制文件的读写操作方法

实验指导:

1.文件控件

DriveListBox控件

DriveListBox控件提供一个驱动器列表。

属性:Drive表示当前选择的驱动器盘符。

事件:Change当驱动器选择发生变化时发生。

DirListBox控件

DirListBox控件提供一个目录列表。

属性:Path表示当前目录的路径。

事件:Change当目录选择发生变化时发生。

FileListBox控件

FileListBox控件提供一个文件列表。

属性:Path表示当前文件列表所在的路径。

Filename表示选择的文件名(不含路径)。

Pattern决定列什么样的文件。

事件:Click当点击列表框的一项数据时发生。

2VB中三种文件的访问方式

(1) 使用二进制文件访问

File System Object 模式不提供二进制文件创建或访问方法。

打开二进制型访问的文件

要为二进制型访问打开文件,应使用以下 Open 语句的语法:

Open pathname For Binary As filenumber

可以看到,二进制访问中的 Open 与随机存取的 Open 不同,它没有指定 Len = reclength。如果在二进制型访问的 Open 语句中包括了记录长度,则被忽略。

在长度可变的字段中保存信息

通过使用二进制型访问可使磁盘空间的使用降到最小。因为这不需要固定长度的字段,类型声明语句可以省略字符串长度参数。

2)使用顺序文件访问

当要处理只包含文本的文件时,比如由典型文本编辑器所创建的文件-也就是说,其中的数据没有分成记录的文件,使用顺序型访问最好。顺序型访问不太适于存储很多数字,因为每个数字都要按字符串存储。一个四位数将需要 4 个字节的存储空间,而不是作为一个整数来存储时只需的 2 个字节。

打开顺序访问文件

当以顺序型访问打开一个文件时,可执行以下操作:

从文件输入字符 (Input)

向文件输出字符 (Output)

把字符加到文件 (Append)

要顺序型访问打开一个文件,Open 语句使用以下语法:

Open pathname For [Input | Output | Append] As filenumber [Len = buffersize]

当打开顺序文件作为 Input 时,该文件必须已经存在,否则,会产生一个错误。然而,当打开一个不存在的文件作为 Output Append 时,Open 语句首先创建该文件,然后再打开它。当在文件与程序之间拷贝数据时,选项 Len 参数指定缓冲区的字符数。

在打开一个文件 InputOutput Append 以后,在为其它类型的操作重新打开它之前必须先使用 Close 语句关闭它。

编辑为顺序访问打开的文件

如果要编辑一个文件,先把它的内容读入到程序变量,然后改变这些变量,最后再把这些变量写回到该文件。

从文件中读取字符串

要检索文本文件的内容,应以顺序 Input 方式打开该文件。然后使用 Line Input#Input( ),或者 Input# 语句将文件拷贝到程序变量中。

Visual Basic 提供了一次读写顺序文件一个字符或一行的语句和功能。

把字符串写入文件

要在顺序文件中存储变量的内容,应以顺序 Output  Append 打开它,然后使用 Print # 语句。Visual Basic 也支持 Write # 语句,它把一列数字和/或字符串表达式写入文件。它自动地用逗号分开每个表达式,并且在字符串表达式端放置引号。

3)使用随机文件访问

File System Object 模式不提供随机文件创建或访问方法。随机型访问文件中的字节构成相同的一些记录,每个记录包含一个或多个字段。具有一个字段的记录对应于任一标准类型,比如整数或者定长字符串。具有多个字段的记录对应于用户定义类型。

声明变量

在应用程序打开以随机型访问的文件以前,应先声明所有用来处理该文件数据所需的变量。这包括用户定义类型的变量,它对应该文件中的记录,和标准类型的其它变量,这些变量保存为随机型访问而打开的文件与处理相关的数据

定义记录类型

在打开一个文件进行随机访问之前,应定义一个类型,该类型对应于该文件包含或将包含的记录。

在类型定义中声明字段变量

因为随机访问文件中的所有记录都必须有相同的长度,所以固定的长度对用户定义类型中的各字符串元素通常很有用。如果实际字符串包含的字符数比它写入的字符串元素的固定长度少,则 Visual Basic 会用空白(字符代码 32)来填充记录中后面的空间。还有,如果字符串比字段的尺寸长,则它就会被截断。如果使用 长度可变的字符串,则任何用 Put 存储的或用 Get 检索的记录总长度都不能超过在 Open 语句的 Len 分句中所指定的记录长度。

声明其它变量

在定义与典型记录对应的类型以后,应接着声明程序需要的任何其它变量,用来处理作为随机访问而打开的文件

打开随机访问的文件

要打开随机访问的文件,Open 语句使用以下语法:

Open pathname [For Random] As filenumber Len = reclength

因为 Random 是缺省的访问类型,所以 For Random 关键字是可选项。表达式 Len = reclength 指定了每个记录的尺寸。如果 reclength 比写文件记录的实际长度短,则会产生一个错误。如果 reclength 比记录的实际长度长,则记录可写入,只是会浪费些磁盘空间。

编辑随机型访问打开的文件

如要编辑随机型访问的文件,请先把记录从文件读到程序变量,然后改变各变量的值,最后,把变量写回该文件。后面各节讨论如何编辑随机型访问打开的文件。

把记录读入变量

使用 Get 语句把记录复制到变量。

把变量写入记录

使用 Put 语句把记录添加或者替换到随机型访问打开的文件。

替换记录

要替换记录,请使用 Put 语句,指定想要替换的记录位置,

添加记录

要向随机访问打开的文件的尾端添加新记录,应使用Put 语句。把 Position 变量的值设置为比文件中的记录数多 1

删除记录

通过清除其字段可以删除一个记录,但是该记录仍在文件中存在。通常文件中不能有空记录,因为它们会浪费空间且会干扰顺序操作。最好把余下的记录拷贝到一个新文件,然后删除老文件。

实验内容:

1.:建立一个应用程序,该程序利用文件系统控件可以实现文件的复制、移动和删除,如下图所示。

2.编写程序,要求能将文本框中的内容写入顺序文件,或者能将顺序文件的内容读入到文本框中,如下图所示。

 

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多