
vb编程基础知识
考察学习-冷军油画作品欣赏
2023年3月18日发(作者:歌德名言)VB基础教程
计算机等级考试⼆级VB基础教程
1.1VisualBasic概述
Basic是什么
VisualBasic(简称VB)是Microsoft公司开发的⼀种通⽤的基于对象的程序设计语⾔。
“Visual”指的是开发图形⽤户界⾯(GUI)的⽅法——不需编写⼤量代码去描述界⾯元素的外观和位置,⽽只要把预先建⽴的对
象add到屏幕上的⼀点即可。
“Basic”指的是BASIC(BeginnersAll-PurposeSymbolicInstructionCode)语⾔,⼀种在计算技术发展历史上应⽤得最为⼴泛
的语⾔。VisualBasic在原有BASIC语⾔的基础上进⼀步发展,⾄今包含了数百条语句、函数及关键词,其中很多和
WindowsGUI有直接关系。专业⼈员可以⽤VisualBasic实现其它任何Windows编程语⾔的功能,⽽初学者只要掌握⼏个关
键词就可以建⽴实⽤的应⽤程序。VisualBasicScriptingEdition(VBScript)是⼴泛使⽤的脚本语⾔,它是VisualBasic语⾔的
⼦集,可嵌⼊HTML语⾔中,⽤于⽹页设计,如ASP(ActiveServerPage)⽂件。
VB简单易学,通⽤性强,⽤途⼴泛。
的功能
VB可以⽤于可以开发多媒体、数据库、⽹络、图形等⽅⾯的应⽤程序。
数据访问特性允许对包括MicrosoftSQLServer和其它企业数据库在内的⼤部分数据库格式建⽴数据库和前端应⽤程序,以及
可调整的服务器端部件。
有了ActiveX(TM)技术就可使⽤其它应⽤程序提供的功能,例如MicrosoftWord字处理器,MicrosoftExcel电⼦数据表及其它
Windows应⽤程序。
Internet能⼒强⼤,很容易在应⽤程序内通过Internet或intranet访问⽂档和应⽤程序,或者创建Internet服务器应⽤程序。
已完成的应⽤程序是使⽤VisualBasic虚拟机真正.exe⽂件,可以⾃由发布。
的发展
VB是伴随Windows操作系统⽽发展的,在中国使⽤较⼴的版本有VB4.0、VB5.0、VB6.0。
VB4.0是为配合WIN95的问世于1995年推出的,既可⽤于编写WIN3.X平台的16位应⽤程序也可编写WIN95平台的32位应⽤程
序;VB5.0主要⽤于编写WIN95平台的32位应⽤程序,较之VB4.0主要扩展了数据库、ActiveX和Internet⽅⾯的功能;VB6.0
是与WIN98配合于1998年推出的,进⼀步加强了数据库、Internet和创建控件⽅⾯的功能。
中的⼏个常⽤术语
⼯程(Project):是指⽤于创建⼀个应⽤程序的⽂件的集合。
对象(object):可控制的某个东西,VB中主要有两类对象:窗体和控件。
窗体(form):应⽤程序的⽤户界⾯,即windows。
控件(control):指的是各种按扭、标签、⽂本框等。
属性(property):是指对象的特性,如⼤⼩、标题或颜⾊。
ActiveX:ActiveX是基于componentobjectmodel(com)的可视化控件结构的商标名称.它是⼀种封装技术,提供封装COM组件并
将其置⼊应⽤程序(如WEB浏览器)的⼀种⽅法.
ComponentsObjectModel(COM):是软件组件互相通讯的⼀种⽅式。它是⼀种⼆进制和⽹络标准,允许任意两个组件互相通
讯,⽽不管它们是在什么计算机上运⾏(只要计算机是相连的),不管各计算机运⾏的是什么操作系统(只要该操作系统⽀持
COM),也不管该组件是⽤什么语⾔编写的。
的系统特性
(1)⼯程限制
1)代码限制:
可被加载到窗体、类或标准模块的代码总数限于65,534⾏。⼀⾏代码限于1023个字节。在⼀⾏中的实际⽂本之前最多只能有
256个空格的前导,在⼀个逻辑⾏中最多只能有25个续⾏符(_)。
2)过程、类型和变量
对每个模块的过程数没有限制。每个过程可包含⾄多64K的代码。如果过程或模块超过这⼀限制,VisualBasic便产⽣编译时
间错误。如果遇到这种错误,可将特别⼤的过程分割成若⼲个较⼩的过程,或将模块级声明移到另⼀模块,来避免此类错误发
⽣。
VisualBasic⽤表来保存代码中的标识符名(变量、过程、常量等)。每个表限于64K。
3)动态链接库声明表
每个窗体和代码模块使⽤⼀个描述动态链接库⼊⼝点的结构的表。每个结构约40个字节,表的⼤⼩限于64K,形成每个模块
⼤约有1500个声明。
4)⼯程名表
整个应⽤程序⽤⼀张包含所有名称的表。这些名称包括:常量名、变量名、⾃定义的类型定义名、模块名、DLL过程声明
名。对⼯程名表总⼤⼩没有限制,但是区分⼤⼩写的条⽬不得超过32K。如果超过了32K的限制,可以在不同的模块中重新使
⽤private标识符以限制区分⼤⼩写的条⽬数到达32K。
5)输⼊表
在不同的模块中每引⽤⼀个标识符,便在输⼊表中创建⼀个条⽬。每⼀个这样的⼊⼝最⼩是24字节,但限于64K,这样每个
模块⼤约可以有2000个引⽤。
6)模块条⽬表
该表中每个模块最多达125个字节,但有64K的总限制,这样每个⼯程⼤约可以产⽣400个模块。VB中的变量名不多于255
个字符,⽽窗体、控件、模块和类名不多于40个字符。
(2)⼯程⽂件格式
VB在创建和编译⼯程时要产⽣许多⽂件,分为:设计时⽂件、杂项开发⽂件和运⾏时⽂件。
设计时⽂件是⼯程的建造块,例如基本模块(.bas)和窗体模块(.frm)。
杂项⽂件是由VisualBasic开发环境中的各种不同的进程和函数产⽣的,例如打包和展开向导从属⽂件(.dep)。
1.2VB6.0的集成开发环境简介
VB集成开发环境(IDE——IntegratedDevelopingEnvironment)由以下元素组成:
1.标题栏
⽤于显⽰正在开发或调试的⼯程名和系统的⼯作状态(设计态、运⾏态、中⽌态)。
2.菜单栏
⽤于显⽰所使⽤的VisualBasic命令。VB6.0标准菜单包括:
3.⼯具栏
在编程环境下⽤于快速访问常⽤命令。缺省情况下,启动VB后显⽰“标准”⼯具栏,附加的编辑、窗体设计和调试的⼯具栏可以
从“视图”菜单上的“⼯具栏”命令中移进或移出。
4.窗体设计器
⽤来设计应⽤程序的界⾯。启动VB后,窗体设计器中⾃动出现⼀个名为Form1的空⽩窗体,可以在该窗体中添加控件、图形
和图⽚等来创建所希望的外观,窗体的外观设计好后,从菜单中选择“⽂件”→“保存窗体”→在保存对话框中给出合适的⽂件名
(注意扩展名),并选择所需的保存位置→确定。需要再设计另⼀个窗体时,单击⼯具栏上的“添加窗体”按钮即可。
5.控件(⼯具)箱
由⼀组控件按钮组成,⽤于设计时在窗体中放置控件。除了缺省的⼯具箱布局之外,还可以通过从上下⽂菜单中选定“添加选
项卡”并在结果选项卡中添加控件来创建⾃定义布局。
6.弹出式(上下⽂)菜单
在要使⽤的对象上单击⿏标右键即可打开快捷菜单,其上会出现与当前对象相关的经常执⾏的操作,以加快操作速度。
7.⼯程管理器窗⼝
⽤于浏览⼯程中所包含的窗体和模块,还可以从中查看代码、查看对象。
8.属性窗⼝
是VB中⼀个⽐较复杂的窗⼝,其中列出了对选定窗体和控件的属性设置值。VB中正是通过改变属性来改变对象的特征,如⼤
⼩、标题或颜⾊。
9.对象浏览器
列出⼯程中有效的对象,并提供在编码中漫游的快速⽅法。可以使⽤“对象浏览器”浏览在VB中的对象和其它应⽤程序,查看对
那些对象有效的⽅法和属性,并将代码过程粘贴进⾃⼰的应⽤程序。
10.对象浏览器
右击窗体中的对象、从⼯程管理器中点“查看代码”按钮。
11.窗体布局窗⼝
FormLayoutwindow允许使⽤表⽰屏幕的⼩图象来布置应⽤程序中各窗体的位置。
12.⽴即、本地和监视窗⼝这些附加窗⼝是为调试应⽤程序提供的,它们只在IDE之中运⾏应⽤程序时才有效。
1.3⾯向对象程序设计的基本概念
1.基本术语
(1)对象和对象类
对象是代码和数据的组合,可以作为⼀个单位来处理。对象可以是应⽤程序的⼀部分,⽐如可以是控件或窗体。整个应⽤程序
也是⼀个对象。
VB中的每个对象都是⽤类定义的。⽤饼⼲模⼦和饼⼲之间的关系作⽐,就会明⽩对象和它的类之间的关系。饼⼲模⼦是类。
它确定了每块饼⼲的特征,⽐如⼤⼩和形状。⽤类创建对象,对象就是饼⼲。类是⾯向对象程序设计的核⼼技术,可以理解成
⼀种定义了对象⾏为和外观的模板;把对象看作是类的原原本本的复制品,
类具有继承性、封装性、多态性、抽象性。
(2)属性
属性是对对象特性的描述,VB为每⼀类对象都规定了若⼲属性,设计中可以改变具体对象的属性值。⽐如窗体的背景颜⾊、
⾼度与宽度。
(3)事件(Event)
事件是发⽣在对象上的动作。事件的发⽣不是随意的,某些事件仅发⽣在某些对象上。
在VB中事件的调⽤形式是:
PrivateSub对象名_事件名
(事件内容)
EndSub
(4)⽅法(Method)
⽅法指的是控制对象动作⾏为的⽅式。它是对象本⾝内含的函数或过程,它也是⼀个动作,是⼀个简单的不必知道细节的⽆法
改变的事件,但不称作事件;同样,⽅法也不是随意的,⼀些对象有⼀些特定的⽅法。在VB⾥⽅法的调⽤形式是:
对象名.⽅法名
2.属性、⽅法和事件之间的关系
VB对象具有属性、⽅法和事件。属性是描述对象的数据;⽅法告诉对象应做的事情;事件是对象所产⽣的事情,事件发⽣时
可以编写代码进⾏处理。
VB的窗体和控件是具有⾃⼰的属性、⽅法和事件的对象。可以把属性看作⼀个对象的性质,把⽅法看作对象的动作,把事件
看作对象的响应。
⽇常⽣活中的对象,如⼩孩玩的⽓球同样具有属性、⽅法和事件。⽓球的属性包括可以看到的⼀些性质,如它的直径和颜⾊。
其它⼀些属性描述⽓球的状态(充⽓的或未充⽓的)或不可见的性质,如它的寿命。通过定义,所有⽓球都具有这些属性;这些
属性也会因⽓球的不同⽽不同。
⽓球还具有本⾝所固有的⽅法和动作。如:充⽓⽅法(⽤氦⽓充满⽓球的动作),放⽓⽅法(排出⽓球中的⽓体)和上升⽅法(放⼿
让⽓球飞⾛)。所有的⽓球都具备这些能⼒。
⽓球还有预定义的对某些外部事件的响应。例如,⽓球对刺破它的事件响应是放⽓,对放⼿事件的响应是升空。
在VB程序设计中,基本的设计机制就是:改变对象的属性、使⽤对象的⽅法、为对象事件编写事件过程。程序设计时要做的
⼯作就是决定应更改哪些属性、调⽤哪些⽅法、对哪些事件作出响应,从⽽得到希望的外观和⾏为。
3.事件驱动模型
在传统的或“过程化”的应⽤程序中,应⽤程序⾃⾝控制了执⾏哪⼀部分代码和按何种顺序执⾏代码。从第⼀⾏代码执⾏程序并
按应⽤程序中预定的路径执⾏,必要时调⽤过程。
在事件驱动的应⽤程序中,代码不是按照预定的路径执⾏,⽽是在响应不同的事件时执⾏不同的代码⽚段。事件可以由⽤户操
作触发、也可以由来⾃操作系统或其它应⽤程序的消息触发、甚⾄由应⽤程序本⾝的消息触发。这些事件的顺序决定了代码执
⾏的顺序,因此应⽤程序每次运⾏时所经过的代码的路径都是不同的。
因为事件的顺序是⽆法预测的,所以在代码中必须对执⾏时的“各种状态”作⼀定的假设。当作出某些假设时(例如,假设在运⾏
来处理某⼀输⼊字段的过程之前,该输⼊字段必须包含确定的值),应该组织好应⽤程序的结构,以确保该假设始终有效(例
如,在输⼊字段中有值之前禁⽌使⽤启动该处理过程的命令按钮)。
在执⾏中代码也可以触发事件。例如,在程序中改变⽂本框中的⽂本将引发⽂本框的Change事件。如果Change事件中包含
有代码,则将导致该代码的执⾏。如果原来假设该事件仅能由⽤户的交互操作所触发,则可能会产⽣意料之外的结果。正因为
这⼀原因,所以在设计应⽤程序时理解事件驱动模型并牢记在⼼是⾮常重要的。
4.交互式开发
传统的应⽤程序开发过程可以分为三个明显的步骤:编码、编译和测试代码。但是VisualBasic与传统的语⾔不同,它使⽤交
互式⽅法开发应⽤程序,使三个步骤之间不再有明显的界限。
VB在编程者输⼊代码时便进⾏解释,即时捕获并突出显⽰⼤多数语法或拼写错误。看起来就象⼀位专家在监视代码的输⼊。
除即时捕获错误以外,VB也在输⼊代码时部分地编译该代码。当准备运⾏和测试应⽤程序时,只需极短时间即可完成编译。
如果编译器发现了错误,则将错误突出显⽰于代码中。这时可以更正错误并继续编译,⽽不需从头开始。
由于VB的交互特性,代码运⾏的效果可以在开发时进⾏测试,⽽不必等到编译完成以后。
1.4利⽤VB开发应⽤程序的⼀般步骤
⼀个VB程序也称为⼀个⼯程,由窗体、标准模块、⾃定义控件及应⽤所需的环境设置组成。开发步骤⼀般如下:
1.创建程序的⽤户界⾯
2.设置界⾯上各个对象的属性
3.编写对象响应事件的程序代码
4.保存⼯程
5.测试应⽤程序,排除错误
6.创建可执⾏程序
2.1VB⽤户界⾯设计基础
1.概述
界⾯的设计有两步:先绘制控件,然后确定控件属性。
绘制控件:在⼯具箱⾥单击想画的控件,在窗体⾥按下⿏标并拖曳,然后松开⿏标即可。确定属性:先选中控件,然后按F4
键或单击⼯具栏上的属性窗⼝进⼊属性(Properties)窗⼝,再在属性窗⼝中找到要设置的属性并进⾏设置。
2.常⽤属性的设置
(1)Name属性
对象都有名字,计算机把名字看成对象于对象之间的根本差异,因此在同⼀窗体⾥不许出现重名的情况(除⾮这是⼀个控件数
组),且名字不得超过40个字。
在简单的程序⾥,给控件命名不是很必要,完全可以使⽤控件Name属性的缺省值。例如Text1。但在有⼏⼗个控件的复杂窗
体⾥,就很难区分它们。所以,VB推荐由三个⼩写字母的前缀和⼀个第⼀个字母为⼤写的描述性单词组成的名字。例如
cmdMyButton是⼀个命令按钮(前缀是cmd)
(2)Caption属性
Caption即标题,是可以在对象外观上直接看见的⽂本,可以长达255字符,包括空格和标点符号,⽐如⼀个叫cmdOk的命令
钮,它的Caption属性就可以是“Ok”。注意:并不是所有的对象都有此属性,⽐如⽂本框、图⽚框、线条等就没有。
为按钮设置热键:在设置Caption属性时,在需要加下划线的字母前加上“&”符号,例如“&File”,输出的就是“File”,这样就可
以通过按ALT键和标题上那个带下划线的字母来选取它了,不必为此编任何代码。Name和caption的⽐较:
1)Name是系统⽤来识别对象的,编程时需要⽤它来指代各对象;Caption是给⽤户看的,提⽰⽤户该对象的作⽤;
2)Name可以采⽤系统默认的名称,但Caption应该根据实际情况改成意义明了的名词;
3)所有对象都有Name,但不⼀定都有Caption;
(3)Top,Left属性
这两个属性决定对象的位置。只有两种情况需要在属性窗⼝⾥设置这两个属性:第⼀种是⽤户没有⿏标,第⼆种是程序员需要
⼗分精确地设定这两个值。当选中对象,单击并拖曳它的时候,便在修改这两个值了。
(4)Height,Width属性
这两个属性决定了对象的⼤⼩,当选中控件时,它周围出现⼋个⼩⿊⽅块,把⿏标指向这些⽅块,⿏标指针将变成⼀个双向的
箭头,这时按下⿏标并拖曳它,即可改变控件的⼤⼩,也就改变了Height,Width属性。
1.窗体的属性
(1)设置属性的⽅法
1)在设计态通过属性窗⼝设置
直接在属性窗⼝中选择或输⼊既可。
2)在程序代码中改变属性值
代码中的格式为:对象名.属性=属性值
例:lor=RGB(255,0,0)
2.窗体的常⽤⽅法
(1)Hide⽅法
⽤以隐藏MDIForm或Form对象,但不能使其卸载。
语法:
object所在处代表⼀个对象表达式,其值为“应⽤于”列表中的⼀个对象。如果省略object,则带有焦点的窗体就认为是该
object。
说明:
隐藏窗体时,它就从屏幕上被删除,并将其Visible属性设置为False。⽤户将⽆法访问隐藏窗体上的控件,但是对于运⾏中的
VisualBasic应⽤程序,或对于通过DDE与该应⽤程序通讯的进程及对于Timer控件的事件,隐藏窗体的控件仍然是可⽤
的。
窗体被隐藏时,⽤户只有等到被隐藏窗体的事件过程的全部代码执⾏完后才能够与该应⽤程序交互。
如果调⽤Hide⽅法时窗体还没有加载,那么Hide⽅法将加载该窗体但不显⽰它。
(2)Move⽅法
⽤以移动MDIForm、Form或控件。
语法:ft,top,width,height
说明:只有left参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前⾯的全部参数。例如,如果
不先指定left和top参数,则⽆法指定width参数。任何没有指定的尾部的参数则保持不变。
(3)Print⽅法
在Immediate窗⼝中显⽰⽂本。
语法:[outputlist]
Print⽅法的语法具有下列对象限定符和部分:
outputlist参数具有以下语法和部分:
{Spc(n)|Tab(n)}expressioncharpos
说明:
可以⽤空⽩或分号来分隔多个表达式。
对系统指定的国别设置,⽤⼩数点分隔符将所有打印到Immediate视窗的数据正确格式化。关键字要⽤适⽤于主应⽤程序的语
⾔输出。
对于Boolean数据,或者打印True或者打印False。根据主机应⽤程序的地区设置来翻译True和False关键字。
使⽤系统能识别的标准短⽇期格式书写Date数据。当⽇期或时间部件丢失或为零时,只书写已提供的部件。
如果outputlist数据是Empty,则⽆内容可写。但是,如果outputlist数据是Null,则输出Null。在输出Null关键字时,要把关键
字正确翻译出来。
要把错误数据作为Errorerrorcode输出。在输出Error关键字时,要把关键字正确翻译出来。
如果在具有缺省显⽰空间的模块外使⽤此⽅法,则需要object。例如,如果没有指定对象就在标准模块上调⽤此⽅法,则将导
致错误发⽣,但是,如果在窗体模块上进⾏调⽤,则会在窗体上显⽰“outputlist”。
注意:因为Print⽅法是按照字符⽐例进⾏打印,所以字符数与字符所占据的宽度固定的列的数⽬⽆关。例如,像“W”这样的
宽字母占据的宽度超过⼀固定列宽,⽽像"i"这样的窄字母占据的宽度则较⼩。考虑到要使⽤⽐平均字符更宽的空间,表列⼀
定要留有⾜够余地。另外,也可以使⽤固定间距的字体(像Courier字体)来确保每⼀字符均只占⼀列。
(4)PrintFrom⽅法
⽤以将Form对象的图象逐位发送给打印机。
语法:orm
说明:PrintForm将打印Form对象的全部可见对象和位图。在绘制图形时,如果AutoRedraw属性为True,则在运⾏时
PrintForm将打印Form对象或PictureBox控件上的图形。
PrintForm所使⽤的打印机是由操作系统的控制⾯板中的设置来决定。
(5)Refresh⽅法
强制全部重绘⼀个窗体或控件。
语法:h
说明:在下列情况下使⽤Refresh⽅法:
在另⼀个窗体被加载时显⽰⼀个窗体的全部。
更新诸如FileListBox控件之类的⽂件系统列表框的内容。
更新Data控件的数据结构。
Refresh⽅法不能⽤于MDI窗体,但能⽤于MDI⼦窗体。不能在Menu或Timer控件上使⽤Refresh⽅法。
通常,如果没有事件发⽣,窗体或控件的绘制是⾃动处理的。但是,有些情况下希望窗体或控件⽴即更新。例如,如果使⽤⽂
件列表框、⽬录列表框或者驱动器列表框显⽰当前的⽬录结构状态,当⽬录结构发⽣变化时可以使⽤Refresh更新列表。
可以在Data控件上使⽤Refresh⽅法来打开或重新打开数据库(如果DatabaseName,ReadOnly,Exclusive或Connect属性
的设置值发⽣改变),并能重建控件的Recordset属性内的dynaset。
(6)Show⽅法
⽤以显⽰MDIForm或Form对象。
语法:yle,ownerform
说明:
如果调⽤Show⽅法时指定的窗体没有装载,VisualBasic将⾃动装载该窗体。
当Show在显⽰⽆模式窗体时,随后遇到的代码则要执⾏。当Show在显⽰模式窗体(modalform)时,则随后的代码直到该窗
体被隐藏或卸载时才能执⾏。
当Show在显⽰模式窗体时,除了模式窗体中的对象之外不能进⾏输⼊(键盘或⿏标单击)。对其它窗体进⾏输⼊前程序必须
隐藏或卸载模式窗体(通常是处于响应⽤户某些操作状态)。MDIForm不能是形式的。
在模式窗体显⽰时,虽然应⽤程序中的其它窗体失效,但其它应⽤程序不会失效。
应⽤程序的启动窗体在其Load事件调⽤后会⾃动出现。
下⾯的例⼦说明如何使⽤ownerform参数:
PrivateSubcmdShowResults_Click()
'显⽰模式窗体frmResults.
Modal,Me
EndSub
(7)Cls⽅法
清除运⾏时Form或PictureBox所⽣成的图形和⽂本。
语法:
说明:
Cls将清除图形和打印语句在运⾏时所产⽣的⽂本和图形,⽽设计时在Form中使⽤Picture属性设置的背景位图和放置的控件
不受Cls影响。如果激活Cls之前AutoRedraw属性设置为False,调⽤时该属性设置为True,则放置在Form或PictureBox中
的图形和⽂本也不受影响。这就是说,通过对正在处理的对象的AutoRedraw属性进⾏操作,可以保持Form或PictureBox中
的图形和⽂本。
调⽤Cls之后,object的CurrentX和CurrentY属性复位为0。
3.窗体的常⽤事件
(1)Load事件
这个事件发⽣在窗体被装⼊内存时,且发⽣在窗体出现在屏幕之前。窗体出现之前,VisualBasic会看⼀看Load事件⾥有没有
代码,如果有,那么它先执⾏这些代码,再让窗体出现在屏幕上。
(2)Click事件,Dblclick事件
这两个事件在单击或双击窗体时发⽣。不过单击窗体⾥的控件时,窗体的Click事件并不会发⽣,VisualBasic会去看控件的
Click事件⾥有没有代码。
(3)Activate(活动事件)与Deactivate(⾮活动事件)
显⽰多个窗体时,可以从⼀个窗体切换到另⼀个窗体。每次激活⼀个窗体时,发⽣Activate事件,⽽前⼀个窗体发⽣
Deactivate事件。
(4)Resize事件
在窗体被改变⼤⼩时会触发此事件。
4.窗体的控制
(1)装⼊或卸出窗体
要装⼊或卸出窗体,⽤Load或Unload语句。
装⼊窗体:LoadformName
卸出窗体:UnLoadformName
FormName变量是要装⼊或卸出的窗体名。Load语句只是把窗体装⼊内存,并不显⽰出来,要显⽰窗体可以使⽤窗体的Show
⽅法。
(2)显⽰或隐藏窗体
要显⽰或隐藏窗体,⽤Show或Hide⽅法。若尚未装⼊内存则先装⼊再显⽰。
显⽰窗体:de
隐藏窗体:
FormName变量是窗体名,可选变元mode为0(缺省值)时窗体为⾮模态,为1时窗体为模态。模态窗体完全占有应⽤程序控制
权,不允许切换到别的应⽤程序,除⾮关闭!⽽⾮模态窗体则反之。
(3)END语句
END语句的功能是终⽌应⽤程序的执⾏,并从内存卸在所有窗体。
语法是:END
1.窗体的属性
(1)设置属性的⽅法
1)在设计态通过属性窗⼝设置
直接在属性窗⼝中选择或输⼊既可。
2)在程序代码中改变属性值
代码中的格式为:对象名.属性=属性值
例:lor=RGB(255,0,0)
2.窗体的常⽤⽅法
(1)Hide⽅法
⽤以隐藏MDIForm或Form对象,但不能使其卸载。
语法:
object所在处代表⼀个对象表达式,其值为“应⽤于”列表中的⼀个对象。如果省略object,则带有焦点的窗体就认为是该
object。
说明:
隐藏窗体时,它就从屏幕上被删除,并将其Visible属性设置为False。⽤户将⽆法访问隐藏窗体上的控件,但是对于运⾏中的
VisualBasic应⽤程序,或对于通过DDE与该应⽤程序通讯的进程及对于Timer控件的事件,隐藏窗体的控件仍然是可⽤
的。
窗体被隐藏时,⽤户只有等到被隐藏窗体的事件过程的全部代码执⾏完后才能够与该应⽤程序交互。
如果调⽤Hide⽅法时窗体还没有加载,那么Hide⽅法将加载该窗体但不显⽰它。
(2)Move⽅法
⽤以移动MDIForm、Form或控件。
语法:ft,top,width,height
Move⽅法的语法包含下列部分:
说明:只有left参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前⾯的全部参数。例如,如果
不先指定left和top参数,则⽆法指定width参数。任何没有指定的尾部的参数则保持不变。
(3)Print⽅法
在Immediate窗⼝中显⽰⽂本。
语法:[outputlist]
Print⽅法的语法具有下列对象限定符和部分:
outputlist参数具有以下语法和部分:
{Spc(n)|Tab(n)}expressioncharpos
说明:
可以⽤空⽩或分号来分隔多个表达式。
对系统指定的国别设置,⽤⼩数点分隔符将所有打印到Immediate视窗的数据正确格式化。关键字要⽤适⽤于主应⽤程序的语
⾔输出。
对于Boolean数据,或者打印True或者打印False。根据主机应⽤程序的地区设置来翻译True和False关键字。
使⽤系统能识别的标准短⽇期格式书写Date数据。当⽇期或时间部件丢失或为零时,只书写已提供的部件。
如果outputlist数据是Empty,则⽆内容可写。但是,如果outputlist数据是Null,则输出Null。在输出Null关键字时,要把关键
字正确翻译出来。
要把错误数据作为Errorerrorcode输出。在输出Error关键字时,要把关键字正确翻译出来。
如果在具有缺省显⽰空间的模块外使⽤此⽅法,则需要object。例如,如果没有指定对象就在标准模块上调⽤此⽅法,则将导
致错误发⽣,但是,如果在窗体模块上进⾏调⽤,则会在窗体上显⽰“outputlist”。
注意:因为Print⽅法是按照字符⽐例进⾏打印,所以字符数与字符所占据的宽度固定的列的数⽬⽆关。例如,像“W”这样的
宽字母占据的宽度超过⼀固定列宽,⽽像"i"这样的窄字母占据的宽度则较⼩。考虑到要使⽤⽐平均字符更宽的空间,表列⼀
定要留有⾜够余地。另外,也可以使⽤固定间距的字体(像Courier字体)来确保每⼀字符均只占⼀列。
(4)PrintFrom⽅法
⽤以将Form对象的图象逐位发送给打印机。
语法:orm
说明:PrintForm将打印Form对象的全部可见对象和位图。在绘制图形时,如果AutoRedraw属性为True,则在运⾏时
PrintForm将打印Form对象或PictureBox控件上的图形。
PrintForm所使⽤的打印机是由操作系统的控制⾯板中的设置来决定。
2.3控件
1.常⽤控件介绍
(1)常⽤控件的属性、⽅法和事件
ComboBox组合框(将列表框和⽂本框结合在⼀起)
Style属性
外观属性:取0时,系统创建⼀个带下拉式列表框的组合框;为1时,系统创建⼀个由⽂本框和列表框直接组合在⼀起的简单
组合框,可以从列表框中选择,也可以直接在⽂本框中输⼊;为2时,系统创建⼀个没有⽂本框的下拉式列表框,单击列表框
上的按钮才显⽰⽂本框,⽤户不能在⽂本框中输⼊,只能在列表框中选择。
Text属性
其值为⽤户从列表框中选定的⽂本或直接输⼊的⽂本。
AddItem⽅法
添加列表项,使⽤格式:
[对象名.]AddItem[,插⼊位置序号]
若不指定位置,则插⼊到列表末尾。
Clear⽅法
删除列表所有项⽬
RemoveItem⽅法
删除列表项,使⽤格式:
[对象名.]RemoveItem删除项序号
CommandButton
命令按钮
Cancel属性
取消属性,它为True时,按〖ESC〗即等于单击此按钮。
Default属性
缺省属性,它为True时,按回车键即等于单击此按钮。
Timer计时器
Interval属性
两次调⽤Timer事件的事件间隔,⽤于创建动态效果。
Frame框架
CheckBox复选框
OptionButton选项按钮
Alignment属性
决定它们的对齐⽅式,0=左对齐,1=右对齐。
Value属性
决定它们是否被选中的属性
2.常⽤控件的使⽤辨析
(1)⽂本框和标签的区别:
⽂本框通常⽤于向计算机输⼊信息,⽽标签通常⽤于输出信息。⽂本框是⼀个⼗分重要的控件,因为由复选框和选项按钮向程
序输⼊的信息毕竟只有少数的⼏条信息⽽已。标签和⽂本框的区别很⼩,标签可以看成是⼀个在运⾏时不能修改正⽂的⽂本
框,因此标签主要⽤于输出信息。
(2)Label的AutoSize属性和WordWrap属性
为了使标签具有垂直伸展和字换⾏处理,必须设置它的AutoSize属性和WordWrap属性同时为True。
AutoSize属性为False,WordWrap属性为False时,若标签不够⾼⽽Caption太长时,Caption将被切割掉。
AutoSize属性为False,WordWrap属性为True时,情况也如此。
AutoSize属性为True,WordWrap属性为False时,表⽰可以⽔平伸展,但只显⽰⼀⾏信息。
(3)PictureBox和Image的Stretch属性和AutoSize属性
Image只有Stretch属性,⽽PictureBox只有AutoSize属性。
AutoSize属性设为True,则PictureBox改变⾃⼰的⼤⼩来适应其中的图形。
Stretch属性设为True,则Image中的图形将改变⾃⼰的⼤⼩来适应外⾯的边框。
(4)Frame框架、CheckBox复选框、OptionButton选项按钮的区别:
复选框和选项按钮⽤于向程序输⼊信息,框架⽤来对复选框和选项按钮进⾏分组。
复选框选中时会在⼩⽅框⾥打⼀个钩,选项按钮选中时会在⼩圆圈⾥点⼀个点。
2.4定制菜单
1.菜单概述
Windows中的菜单⼀般由菜单条、菜单、菜单项、⼦菜单、弹出式菜单组成。
2.普通菜单的设计
(1)给菜单命名
菜单标题和菜单命令也有Caption和Name属性,设置了这两个属性就等于创建了菜单。Name是⼀个抽象名称,Caption是屏
幕上可见的,可在Caption⾥加⼊“&”来设置热键。
(2)增加和删除菜单
在MenuEditor中部有三个命令钮分别是下⼀个、插⼊、删除。插⼊可⽤来增加新的菜单。在这三个键下⾯的Caption列表框⾥
选中菜单项(这时它的底⾊就变成深蓝⾊),单击插⼊键,VisualBasic将上⼀个增亮菜单下推并增亮⼀空⾏,就可以输⼊新
菜单名和标题了。删除键可⽤来删掉菜单。选中要删掉的菜单,单击Delete键就可以删掉它了。
(3)移动菜单标题
有四种情况:向上移动,向下移动,向左缩排,向右缩排,选中某⼀菜单标题,安上下箭头,则这个菜单将上下移动到你喜欢
的位置上,这也决定了它在界⾯中的位置。如果按左右箭头,情况则有所不同。由于菜单是分级的,所以,如果它没有缩排,
则它是⼀个菜单标题;如果它缩排⼀次,那么它将变成⼀个菜单命令;如果缩排两次,那么它将成为⼀个⼦菜单命令。VB⾥
可以总共设计四层⼦菜单。
(4)设置分离条
分离条是指在菜单中将命令分组的线,VB将分离条也看成⼀个菜单项,它也需要Caption和Name属性,⽽且也有其它属性,
分离条与菜单项的区别是分离条的Caption属性必须是连字号即减号。也就是,当设置了⼀个Caption属性为“-”的菜单项时,
实际上就设置了⼀个分离条,分离条的名字可以是barFile1之类,以表明分离条的位置。
(5)菜单的各种简单属性
在菜单编辑器⾥有许多确认框和⼀些⽂本框及⼀个下拉式的列表框,这些决定了菜单的各种属性。
1)Checked复选属性
这个属性值设置为真,将在菜单命令左边产⽣⼀个打勾的确认标志。
2)Enabled有效属性
各种各样的⽤户会产⽣千奇百怪的操作,在许多Edit菜单⾥都会有不同形式的让菜单命令模糊的情况。Enabled属性为真,则
菜单命令是清晰的,Enabled属性为假,则菜单命令是模糊的,这时⽤户就不能选中这个菜单项了。
3)Visible可见属性
对暂时不⽤的菜单,如果把Visible属性设为假,则菜单根本不会出现在屏幕上。这样做⽐把Enabled属性设为假显得更加⼲
脆!
4)Index属性
可以⽣成菜单命令数组,⽤索引号区分开。例如向File菜单中添加⼀系列最近打开的⽂件名。添加菜单可⽤Load⽅法。以上属
性可以在运⾏时设置,形成动态的菜单的情况。
例如:
d=False
e=False
还可以改变Caption等属性。
n=“Redo”
3.⽣成弹出式菜单(或浮动菜单)
⼏乎每个Windows应⽤程序都提供弹出式菜单,⽤户可以右键单击窗体或控件取得这个菜单。弹出式菜单也属于普通菜单,
只是不固定在窗体上,⽽是可以在任何地⽅显⽰。
弹出式菜单⽤PopupMenu⽅法调⽤。假设已经⽤菜单编辑器⽣成了名为mnuedit的菜单,则可以在MouseUp事件加⼊如下代
码就可以⽣成弹出式菜单:
IfButton=2ThenPopupMenumnuedit
2.5设计状态条、⼯具栏、进程条等
1.创建状态条
选中状态条,按F4键进⼊属性窗⼝,双击(Custom)可以进⼊主要的设置窗⼝SBarCtrl属性窗⼝。
(1)选择⾯板形状
在SBarCtrl属性窗⼝⾥选择General标签,在Style列表框⾥选择多⾯板(缺省形式)或单⾯板简单⽂本形式。
(2)添加或删除状态条⾯板
在SBarCtrl属性窗⼝⾥选择Panels标签,单击Insert按钮添加⼀个⾯板,或单击Remove按钮删除⼀个⾯板。
(3)在单⾯板⾥显⽰⽂本
在SBarCtrl属性窗⼝⾥选择General标签,在SimpleText框⾥输⼊想显⽰在状态条⾯板⾥的⽂本。⽤代码显⽰的⽅式是:
Text="Newstringtoappear"
(4)在多⾯板⾥显⽰⽂本或图形
1).在SBarCtrl属性窗⼝⾥选择Panels标签,⽤Index旁的按钮选择⾯板序号。
2).在Text框⾥输⼊想显⽰在状态条⾯板⾥的⽂本。
3).如果想加⼊图形,单击Browse按钮打开⼀个图形选择对话框,选择想加⼊的图形,然后单击打开按钮。
4).最后按确定按钮。
5).⽤代码显⽰的⽅式是:(x).Text="Newstringtoappear"
6).编写代码
如果是⼀个单⾯板状态条,当⽤户单击状态条时,只需⽤下⾯的事件过程来响应:
PrivateSubStatusBar1_Click()
EndSub
如果是⼀个多⾯板状态条,就需要鉴别⽤户单击的是哪⼀个⾯板,可⽤下⾯的事件过程来识别⽤户所单击的⾯板:
PrivateSubStatusBar1_PanelClick(ByValPanelAsPanel)
Case1
'Codetofollowifuserclicksthefirstpanel
Case2
'Codetofollowifuserclicksthesecondpanel
Case3