第1章Visual Basic概述 1.1基本要求 1.了解VisualBasic的功能与特点,掌握VB6.0的安装: 2.熟悉VB的集成开发环境: 3.掌握创建VB应用程序的一般步骤。 1.2知识点 1.VisualBasic的功能 (1)采用面向对象的可视化界面设计 (2)采用基于对象的编程方法 (3)采用事件驱动的编程机制 (4)集成化开发环境 (5)结构化程序设计 (6)多种方式访问外部数据 2.VisualBasic的特点 (1)简单易学 (2)界面友好 (3)工程化管理 (4)解释工作方式 (5)编译形成可执行文件 3.VB的安装 (1)将VB6.0的安装光盘放入光驱。 (2)光盘的安装程序会自动启动,进入安装界面:或者通过浏览器启动光盘上的 Setup.exe安装程序。 (3)在“安装向导”的提示下完成安装工作。 4.VB集成开发环境 VB集成开发环境由10个部分组成,它们是标题栏、菜单栏、工具栏、工具箱、对象 设计窗口、代码窗口、立即窗口、工程资源管理器窗口、属性窗口和窗体布局窗口。如图所 示。 5.VB的工作模式 (1)设计模式 (2)运行模式 (3)中断模式 6.工具箱 工具箱是VB提供的应用程序设计控件集合,其中每一个小图标代表一个控件,用户可 以使用控件在窗体上创建相应的控件对象。初始状态工具箱中有20个标准控件,用户可以 直接使用它
! "#$%&'()*+,%-. "#$/0'(123 "#$4567189 "#+ "#:;+-. "#?@ABCD "#EFGH "#,%IJ "#K+LM "#NKO2> "#1PQ)RST5 "#U VWXYV6! "#VW Z[7\7 ]Y ,%^_`abcd\7VWe ! "#fg &hijklm KO! n oBpq rstuvwxyFwxKzwxKz{x'( -.|}x~|}x|}xKLMd|}x |}||}! k! "#-.> "#S> "#> Kz{t j-.5 ou~o5 ) 5f|e5'(!Kz{ ou¡5 ) ¢£r!
如果需要使用其他注册过的控件,可以通过“工程”菜单下的“部件”命令把相关控件 添加到工具箱中。如图1-1所示。 部件 Gener al 控件 设计器可插入对象 Microsoft ADO Data Control 6.0 (OLEDB) 管 面 的 Microsoft Agent Control 2.0 Microsoft Calendar Control 9.0 山显 Microsoft Chart Control 6.0 (OLEDB) Microsoft Comm Control 6.0 居器 Microsoft Common Dialog Control 6.0 司 大 西 圃 围 Microsoft Data Bound List Controls 6.0 Microsoft DataGrid Control 6.0 (OLEDB) 国园 4 Microsoft DataList Controls 6.0 (OLEDB) 0 令 Microsoft DataRepeater Control 6.0 (OLE[ Microsoft Direct Speech Recognition □ 昌 Microsoft Direct Text-to-Speech 浏览⑧)… 厂只显示选定项⑤) Microsoft Calendar Control 9.0 囚曾 定位:F:\.,Office\MSCAL.OCX 而 确定 取消 应用a) 图1-1部件对话框 7.对象设计窗口 用来开发VB应用程序界面的窗口,用户可以在窗体中放置各种控件。 窗体是VB应用程序的主要部分,每一个工程都至少有一个窗体。用户可以根据需要在 工程中建立多个窗体。 8.代码窗口 用来对过程或事件过程的代码进行编辑的窗口。代码窗口的由对象下拉列表框、事件过 程下拉列表框、代码编辑区、查看视图按钮四个部分组成。如图1-2所示。 工程1-Form1(Code) 回 里orn Load Option Explicit Private Sub Form Load( End Sub 选择对象 选挥事件 国恒口 图1-2代码窗口 9.立即窗口 在中断模式状态下用来观察处理结果、调试程序使用的窗口。可选择“视图”中“立即 窗口”命令来打开立即窗口。也可以在“立即窗口”中直接输入命令,观察结果。如图1-3 所示
¤¥¦§¨©a5 )`agKiyFlgB5iª«¬5 ®¯°Kz{! k! B5'±² ³ ,%|} )f|X´µ=5! |t ¶¦Bp oK·¸¹ o|!)ºD¥¦f Kl³ÄÅÆM:¤xÇÈ|}!)ÉÊg*ig |}iª«³Ë|}!Ì)fg|}i¢£ÍYª« ÄÅ:¤! k!
立即 器4*Aa ·计算圆周率 值为p 3.14159265358979 图1-3立即窗口 10.工程资源管理器窗口 由于工程是应用程序各种类型文件的集合,所以工程资源管理器窗口列出当前工程中的 窗体和模块。工程本身也是一个文件(.vbp),工程包含的三类文件:窗体文件(.fm)、标 准模块文件(.bas)和类模块文件(.cls)。如图1-4所示。 工程-工程1 围围白 日工程1工程1) 百一窗体 i白Form1下orml) 白模块 数od1e10hod1e1 图1-4工程资源管理器窗口 11.属性窗口 用于设置应用程序中的窗体及控件的属性。属性窗口由对象下拉列表框、选项卡、属性 列表、属性含义四个部分组成。如图1-5所示。 白工程1-Formi(for -口X屈性-Commandi Commandl CommandButton 按字母序按分类序 名称) Commandl Appearance 1-3D BackColor ☐&H8000000F& Cancel False Caption 查询〔Q川 CausesValidation True 查询Q) Default False Caption 返回/设置对象的标题栏中或图标下面的 图1-5属性窗口 12.运行和调试程序 (1)选择“运行”菜单的“启动”命令或单击工具栏的“启动”按钮或按F5功能键 来运行应用程序。 (2)选择“运行”菜单的“结束”命令或单击工具栏的“结束”按钮来结束应用程序 运行 13.保存VB应用程序
|} !"# n0Ktµ=ÎÏT5 KLMd|}½ÐÑÒK |Ó!KÔÕÌtoT5" KÖ×ØÎT5Ù|T5"#xu ¡ÓT5"#ÎÓT5" #! k! KLMd|} $% 0-´|Ú5 ! |}n'(l¼½²xÉÛÜx ½x ×ÝÃoBpq! k! |} SÇÈ "#ÉÊgSiyFg\7iª«^FÞKzwg\7iÁÂ^Á ß ³S! "#ÉÊgSiyFg:àiª«^FÞKzwg:àiÁ³:à S &' ()*
(1)先保存窗体文件 选择“文件”菜单中的“保存Form1”命令或者“Foml另存为”命令。 (2)再保存工程文件 选择“文件”菜单中的“保存工程”命令或者“工程另存为”命令。 1.3疑难解析 1.在VB集成环境中没有显示“工具箱”等窗口 只要选择“视图工具箱”命令就可显示:同样选择“视图”菜单的有关命令可显示对 应的窗口。 2.标点符号错误 在VB中只允许使用西文标点,任何中文标点符号在程序编译时产生“无效字符”错误, 系统在该行以红色字符显示。用户在进入VB后,不要使用中文标点符号。中、西文状态下 标点符号对照表如下: 中文标点 西文标点 3.字母和数字形状相似 L的小写字母“1”和数字“1”形状几乎相同,0的小写字母“o”与数字“0”也难以 区别,这在输入代码时要十分注意,尽量避免使用这些易混淆的字符。 4.对象名称(Name)属性写错 在窗体上创建的每个控件都有默认的名称,用于在程序中唯一地标识该控件对象。系 统为每个创建的对象提供了默认的对象名,例如,Textl、Text2、Commandl、Labell等。 用户也可以将属性窗口的(名称)属性改为自己所指定的可读性好的名称,如txtInput、 txtOutput、cmdOK等。对初学者,由于程序较简单、控件对象使用较少,一般就用默认的 控件名。 当程序中的对象名写错时,系统显示“要求对象”的信息,并对出错的语句以黄色背景 显示,如图1-6所示。用户可以在代码窗口的“对象列表”框检查该窗体所使用的对象,如 图1-7所示。 Hicrosoft Visual Basic n工程1-Form3(Code) ▣☒ 实时错误’424 Cliek 要求对象 End Sub Private Sub Conmand9_ClickO 中L9bel.Visible=Fse End Sub 继续@ 结束) 绱试四] 帮助D 图1-6实时错误对话框 图1-7列出错误的代码窗口 5.Name属性和Caption属性混淆 Name属性的值用于在程序中唯一地标识该控件对象,在窗体上不可见:而Caption属
"#áâã|T5 ÉÊgT5iyFgâã iª«^_g äãåiª«! "#æâãKT5 ÉÊgT5iyFgâãKiª«^_gKäãåiª«! + ,-./0123 ç¦ÉÊg* Kz{iª«è)ékêëÉÊg*iyF ª«)ék' |}! 45678 f çìíîTu ïðTuñòf1Póôõgö÷øñiùú ûüfýSþøñék!f]Y ¦Tuñò!xîTl uñò9:lÙ Tu ! g Ù îTu ! " # $ % ;;?@AB & øg iCøgiQ ê ' øgiCøg iÌ ¾ fÍY~ó¦p¨ Gøñ! CDEF$%G7 +HIJKLMNOP.QRCDS)T+*,UVW4XYNOZ[ \åo'(j'( (x(x)*+x& ! Ì)U |}"# å[ )! J ,*x 'x+'- !'H_ n0"EFx5'("¹ è 5! Ñ'(ùó ûüékg¦#'(i$% &'Ðù'()*+ ék k!)f~|}g'(½i²,¿ý|'( . k! -óùú'±² . ½Ðùú~|} $%= $%]^ / .0f/0u1ý5'( f|e)23 )*
性的值是在窗体上显示的内容。 6.对象的属性名、方法名写错 当程序中对象的属性名、方法名写错时,VB系统会显示“未找到方法或数据成员”的 信息,如图1-8所示。 Microsoft Visual Basic ☒ 编译错误 未找到方法或数据成员。 确定 帮助 图1-8编译错误对话框一 在编写程序代码时,尽量使用自动列出成员功能,即当用户在输入控件对象名和句点后, 系统自动列出该控件对象在运行模式下可用的属性和方法,用户按空格键或双击鼠标即可, 这样既可减少输入,也可防止此类错误的出现。 7.变量名写错 用D声明的变量名,在后面的使用中表示同一变量而写错了变量名,VB编译时就认 为是两个不同的变量。例如,下面程序段求1~100的和,结果放在sum变量中: Dim sum As Integer,i As Integer sum =0 Fori=1 To 100 sum=sun +i Next i Print sum 显示的结果为l00。原因是累加表达式sum=sun+i中的右边的变量名应该是sum,而 不是su。VB对变量声明有两种方式:一是用变量声明语句显式声明:也可以用隐式声明, 即不声明直接使用。上述变量名的写错,系统为两个不同的变量各自分配内存单元,造成计 算结果不正确。因此,为防止此类错误的发生,必须强制对变量声明采用显式声明方式,也 就是在通用声明段加Option Explicit语句。 8.语句书写位置错 在VB中,除了在“通用声明”段可出现如Di等说明性语句外,其他任何可执行语 句都应放在事件过程中,否则运动时会显示“无效的外部过程”信息,如图1-9所示。若要 对窗体级变量进行初始化工作,则一般放在Form_Load()事件过程中
.tf|eék45! $%C_`aCG7 Ñ'( x23ùó ûüZékg67°23^CD8i $% 0 k! 0 1Pùú'±² f1~ó [7½Ð8 ÑfÍY5'(( ûü[7½Ðý5'(fS>l) 23 Á9:ß^;Þ¹ÍY Ì)?@AÎùúÐB! bcCG7 1 CDE f%kêE3ùE 1Póè åtFoêE! l%G# 2 :¤Xf EÙ 13,*4!3,*4 5 5( 5*6 / 7* ék:¤å !HItJ¯K> 5*6 LMEýt 3 t *! 'ECD F=2>ÙtECD'(é>CDÌ)N>CD CD¢£!eOEù ûüåFoêEµ[pP4ãFQ R. S:¤TU!IA å?@AÎùúõ VWX9'ECD$é>CD2> Ì ètf`CDG¯ '*8 '(! defGgh7 f Yfg`CDiG)ÐB 1 ZD '(A §ïð)RS' (·Xf45a [\7óZékgö÷ABai$% 9 k!]¦ '|^E]S+KO \Xf :&+;45a!
Microsoft Visual Basic ☒ A 编译错误: 无效外部过程 确定 帮助 图1-9编译错误对话框二 9.无意形成控件数组 若要在窗体上创建多个命令按钮,有些读者会先创建一个命令按钮控件(Commandl), 然后利用该控件进行复制、粘贴,这时系统显示: 己经有一个控件为“Command1”,创建一个控件数组吗?的信息。若单击“是”按钮, 则系统创建了名为Commandl的控件数组。若要对该控件的Click事件过程编写代码,系统 显示的框架是: Private Sub CommandI Click(Index As Integer) End Sub 若非控件数组,Click事件过程的框架是: Private Sub Command1 Click End Sub 10.Print方法中定位问题 定位通过Tab、Spc函数和最后的逗号、分号和无符号来控制。VB中通过Print方法中 各参数的综合使用达到所需的结果,但初学者往往难以掌握。 (1)Tab(n)与Spc(n)的区别 Tab(n)从最左第1列开始算起,定位于第n列,若当前打印位置己超过n列,则定位于 下一行的第n列,这常常是因定位不好出现的问题。在格式定位中,Tb用得最多。 Spc(n)从前一打印位置起空n个空格。例如,下面程序段显示了TabO与SpcO的区别, 如图1-10所示。 Private Sub Command1 Click() Print"12345678" Print Tab(1),"*",Tab(2),"%o%";Spc(2),"$$ End Sub Foral 日▣☒ 12345878 第粥%$$ Commandl 图1-10输出窗口
9 1Pùú'±²_ ij? NO>k ]¦f|e k ( zm>#=(;=#???#=;=#@@@@# 8*+ ÍÐ|}
(2)紧凑格式“:”的使用 紧凑格式“:”,即输出项之间无间隔。但对于数值型,输出项之间系统自动空一列,而 由于数值系统自动加符号位,因此,大于零的数值,实际空两列。对于字符型之间无空格。 例如,下面程序段,打印结果如图1-11所示。 Private Sub Command2 Click() Print 1;-2;3 Print"1234";"5678" Print"A":"B":"C" End Sub 通过上述程序段及图1-11,不难区分数值和字符在紧凑格式上输出的差异。 Forml 回☒ 1-23 12345678 ABC Command1 Command2 图1-11数值和字符在紧凑格式上输出的差异 11.打开工程时找不到对应的文件 一般,一个再简单的应用程序也应由一个工程bp文件,一个窗体m文件组成。工程 文件记录该工程内的所有文件(窗体.fm文件、标准模块.bas文件、类模块.cls文件等)的 名称和所存放在磁盘上的路径。由于一个VB工程含有多个文件,以下几种情况下需注意: (1)如果在复制文件时,少复制了某工程的一个文件,下次打开工程时就会显示“文 件未找到”出错提示信息,如图1-12所示。 (2)如果在VB开发环境外,利用Windows资源管理器或DOS命令将窗体文件改名 了,而工程文件内记录的还是原来的文件名,这样也会造成打开工程时显示“文件未找到” 出错提示信息,如图所示。 解决此问题的方法是,修改vb即工程文件中的有关文件名:或者通过“工程”菜单的“添 加窗体“中的“现存”选项,将改名后的窗体加入该工程。 icrosoft Visual Basic 文件未找到:‘M:VB课程网站素材准备e.学习指导书1 bbb\Form1.rm'-继续 加载工程吗? 是□ 否) 帮助 图1-12文件未找到出错提示信息 1.4典型例题
"#{|:>gi {|:>gi ÍÐÛ}~ö~!q'0C.Ï ÍÐÛ}~ûü[79½ 3 n0C.ûü[7¯ñòk IA 0C. -9F½!'0øñÏ}~ö9:! l%G Ëw:¤ k! 7)*+:) eÍÐ! C.øñf{|:>eÍÐ o pqrs(tO oæEFÌnoK T5 o| T5q!K T5 ýK4 T5"| T5xu¡Ó T5xÎÓ T5# ãXfWe!n0o K× <oT5 l =l¥¨Ù "#¤fb9T5ó ¹b9KoT5 lËKóèZékgT 567°iÐùjk$% k! "#¤f A a A*+B LMd^ 1' ª«U|T5 3KT54 tH³T5 ëÌZRËKóékgT567°i Ðùjk$% k! A@v23t KT5 T5^_`agKiyFg® ¯|ggBãiÉÛ U|¯YýK! T567°Ðùjk$%
例1-1按照下列表格分别设置命令按钮控件、文本框控件的属性,然后运行程序。 解答: (1)在窗体上画一个命令按钮,然后在属性窗口中设置下列属性项: 属性项 属性设置值 Caption 显示 Font 宋体、加粗、20 Name CmdSetup Style Picture Program Files\Microsoft Visual Studio\Common\graphics\icons\arrows\arw05rt.ico (2)在窗体上画一个文本框,然后在属性窗口中设置下列属性项: 属性项 属性设置值 MultiLine True Font 黑体、加粗、16 ScrollBar 2 Forecolor 红 Text 注意个人卫生,勤洗手、勤换衣:打扫室内卫生,晒衣、晒被:不 去外地,也不要接待疫区来人 设置完毕后,运行程序的界面如图1-13所示。 B程序窗▣ 回x 注意个人卫生,勤洗手、 勤换衣;打扫室内卫生, 晒衣、晒被:不去外地, 也不要接待疫区来人 显示 图1-13运行程序的界面 例1-2在窗体Foml被加载时,将其大小设置为屏幕大小的75%,并居中显示。 解答: 通过窗体的Load事件来实现,需编写的程序代码如下: Private Sub Form Load ( Forml.Width Screen.Width*.75 ‘设置窗体的宽度 Forml.Height=Screen.Height*.75‘设置窗体的高度 Forml.Left=(Screen.Width-Form1.Width)/2 ‘在水平方向上居中显示 Form1.Top=(Screen.Height-Form1.Height)/2 ‘在垂直方向上居中显示 End 1.5练习与思考
Ál½:p-´ª«ÁÂ5xTÔ²5 `S! Ù "#f|eoª«Á `f |}-´l½ ÛÙ )* * / )+ C 7 74 DE +D)*D4FD*DBDB "#f|eoTÔ² `f |}-´l½ ÛÙ E &* ( * ( ¨oõ xË4õ x ¡ ¢A0 ̦££¤¾³ -´m¥ S,% ¦§ k! ¦§S,% f| ¡¯¨ó U-´å©ª .? &«ék! Ù `a| &+ 45³-B ¥1~lÙ 7:&+"# A+F5*A+F>. G-´|¬ H4F5*H4F>. G-´|® &5;*A+FIA+FJ Gf¯°2&e«ék (5;*H4FIH4FJ Gf±¢2&e«ék 8*+
习题1-1 Visual Basic集成开发环境由哪些部分组成?每个部分的主要功能是什么? 习题1-2属性窗口的功能是什么?它由哪些部分组成?可以通过哪几种方式激活属性 窗口? 习题1-3 Visual Basic的工程包括哪几类文件? 习题1-4 Visual Basic应用程序有几种运行模式? 习题l-5所有控件都有Name属性,大部分控件有Caption属性,对于同一控件来说, 这两个属性有什么区别?
²v n³BpqhoBp¶¦t´µh ²v |}t´µhrn³Bpqh)`a³ =2>¶· |}h ²v KÖ¸³ ÎT5h ²v =S>h ²v 5· / Bp5 )* '0ê5³Z Fo ´µ¾h