第2章 Visual Basic 程序设计基础_第1页
第2章 Visual Basic 程序设计基础_第2页
第2章 Visual Basic 程序设计基础_第3页
第2章 Visual Basic 程序设计基础_第4页
第2章 Visual Basic 程序设计基础_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 Visual Basic 程序设计基础内容提要:本章介绍了程序设计的基本定义、结构化程序设计的概念、特点和如何学习程序设计的方法,进一步阐述可视化编程的特点,通过实例说明窗体的使用。目的是让读者进一步了解VB程序设计的过程和可视化编程的知识。2.1程序设计概述2.1.1 程序设计定义 1. 程序程序(Program)是计算机的一组指令,经过编译和执行,计算机才可以完成一个具体的任务。2. 程序设计语言程序设计语言(Programming Language)是用于编写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就

2、是程序。程序设计语言包含三个方面,即语法、语义和语用。语法表示程序的结构或形式,就是表示构成程序的各个记号之间的组合规则,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,即表示按照各种方法所表示的各个记号的特定含义,但也不涉及使用者。语用表示程序与使用的关系。 程序设计语言的基本成分有:数据成分,用于描述程序所涉及的数据;运算成分,用以描述程序中所包含的运算;控制成分,用以描述程序中所包含的控制;传输成分,用以表达程序中数据的传输。3. 程序设计简单地说,程序设计就是设计程序的过程。具体地说,程序设计(Programming)就是指设计、编制、调试程序的方法和过程。抽象地说,程

3、序就是数据(Data Structure)+算法(Algorithm)。数据就是指我们要解决问题中所使用的数据,并且解决这些数据的形式和如何存放问题;算法就是解题的方法和具体步骤。4. 一般程序设计步骤(1)分析问题对于接任务要进行认真的分析,研究给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。(2)设计算法设计解题的方法和具体步骤。(3)编写程序根据得到的算法,用一种高级语言编写出源程序,并通过测试。(4)对源程序进行编辑、编译和连接(5)运行程序,分析结果运行可执行程序,得到运行结果。能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。不合

4、理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。例如:找出3个自然数的最大数的算法。我们可以把要解决的问题分解成一步一步所执行的动作。你直接让计算机告诉3个数谁是最大数,它是没办法的,所以你必须接受数据和设计算法:首先让计算机接受这三个数,即将3个数放入3个内存变量中R1,R2,R3;第二步要将三个一一比较,比较后判断(先是R1与R2比找出最大的,再将较大的与R3比,则这次较大的数是三个数中最大的);最后把它输出出来。对于这个过程我们指的是一个算法设计过程,接下来用计算机程序设计语言实现,比如用VB程序设计语言。将3个数放入3个内存变量中R1,R2,R3R1=6R2=7R3=9R1

5、与R2比找出最大的If r1>r2 then 较大的与R3比 If r1>r3 then 找出最大的 Print r1;”为最大” Else 找出最大的 Print r3;”为最大” End ifElse 较大的与R3比 If r2>r3 then 找出最大的 Print r2;”为最大” Else 找出最大的 Print r3;”为最大” End ifEnd if将上面代码放到计算机上运行即可得到结果。2.2 结构化程序设计基础2.2.1 结构化程序设计基本概念计算机实际上就是一台能够快速执行指令的机器,这些指令来源于特定的指令集,指令集的内容清晰、简单,仅仅包括四类指令:

6、算术运算、逻辑运算、数据传送和控制转移指令。通过这四类指令能够支持计算机完成运算处理所需要的三种基本控制结构:顺序控制结构、分支控制结构、以及循环控制结构。可以证明,通过这三种基本控制结构可以构成任何复杂的计算处理过程。而这三种基本控制结构被称为结构化程序设计。结构化程序设计的原则:自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。逐步细化:对复杂问题,应设计一些子目标作为过渡,逐步细化。模块化设计:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进

7、一步分解为具体的小目标,每一个小目标称为一个模块。限制使用GOTO语句:结构化程序设计方法的起源来自对GOTO语句的认识和争论。肯定的结论是,在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句会使程序执行效率较高;在合成程序目标时,GOTO语句往往是有用的,如返回语句用GOTO。否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量呈反比,应该在所有高级程序设计语言中取消GOTO语句。取消GOTO语句后,程序易于理解、易于排错、容易维护,容易进行正确性证明。2.2.2 结构化程序设计图的表示1. 图示元素结构化程序设计的逻辑形式可以通过流程图(F

8、low Chart)和盒图(N-S图)形象地表达描述。图示工具能够更清晰、更直观地表述程序的具体工作流程,是算法设计的有力工具。结构化程序设计流程图的基本元素如图2-1所示。图2-1 流程图的基本元素通过N-S图同样可以描述程序所需要的任何操作。因为N-S图的元素本身就以基本控制结构为基础,所设计的控制过程结构严谨、清晰,可以保证程序具有良好的结构化风格,从而得到结构更为优化的设计结果。N-S图的基本元素如图2-2所示。图2-2 N-S图的基本元素2 三种控制结构的画法 (1)顺序控制结构:顺序控制结构的命令主要包括变量设置、表达式计算、数据的输入和输出。顺序控制结构的特点是:指令执行的次序与

9、指令在程序中书写的次序一致;即写在前边的指令一定先执行。顺序控制结构的流程图以及对照的N-S图如图2-3所示。图2-3 顺序控制结构的流程图(左)与N-S图(右) (2)分支控制结构:分支控制结构中包括一个控制条件和A、B两个操作过程。在程序执行过程中,根据指定条件是否被满足选择执行A部分或者B部分操作,并形成不同条件的不同操作结果。分支控制结构的流程图与对照的N-S图如图2-4所示。真假条件满足时的操作条件不满足时的操作条件条件A 操作B 操作分支控制后的操作TN 图2-4 分支控制结构流程图(左)N-S图(右) (3)循环控制结构:循环控制中主要包括一个循环控制条件和一个循环体处理过程。在

10、程序执行过程中,根据控制条件是否被满足,决定是否重复执行循环体处理过程。在循环结构中最主要的是:什么情况下执行循环?哪些操作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环。两种典型的循环控制过程的流程图与对照的N-S图直到型循环见图2-5所示、2-6所示。直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断。因为是“直到条件为真时为止”,所以称为直到型循环。 当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则

11、退出循环体直接到达流程出口处。因为是“当条件满足时执行循环”,即先判断后执行,所以称为当型循环。这三种基本控制结构能够构成任何复杂的算法处理过程,也就是说,只要掌握了这三种基本控制结构的控制思想方法,就可以完成任何复杂的算法设计。实际上,在所有计算机高级语言中,提供的都只是这三种控制结构。程序设计者通过这些基本控制结构既可以完成简单计算(例如数据排序、检索),也可以完成高精度、高难度的复杂计算(例如航天器的控制程序)。因此,可以认为,只要真正掌握了程序的这三种基本控制结构的思想,在学习不同的计算机高级语言时,需要学习掌握的就仅仅只是控制指令的不同表达形式而已。3. 伪码表示还有一种用接近高级语

12、言的代码描述程序设计的结构,例如:VB语言分支结构可以用如下语句的描述: IF 条件描述 THEN 条件满足时的计算过程ELSE 条件不能满足时的计算过程 END IF又如VB语言循环结构可以用如下语句的描述: WHILE(循环执行的逻辑条件描述) 条件满足时的执行过程 Loop伪码非常类似地以接近自然语言的形式表达了所需要的控制流程。因此,在学习VB时,最重要的就是掌握基本控制结构的思想,即使用自然语言描述也是可以的。循环控制条件描述循环条件满足时重复执行的操作循环初始条件设置条件检测循环体操作过程循环控制变量调整循环控制后操作YN循环控制条件描述循环条件满足时重复执行的操作循环初始条件设置

13、条件检测循环体操作过程循环控制变量调整循环控制后操作YN图2-5直到型循环控制结构流程图(左) N-S图(右) 图2-6当型循环控制结构流程图(左) N-S图(右)2.3 可视化编程的基础 传统的面向过程的结构化程序设计,用户界面是通过编写代码来实现,开发者在设计过程中看不到界面的实际显示效果,只有等到编译后程序运行时才能观察到,若对界面要作修改,必须返回到程序中去修改,显然影响了软件开发效率。而“可视化编程”是在一个便于理解的可视化的编程环境中,仅用鼠标即可完成基本操作,无需为处理数据而编写复杂的程序的一种编程方式。在VB中,应用的是面向对象的程序设计(Object-Oriented Pro

14、gramming),把程序和数据封装起来成为一个对象(Object),每个对象都是可视的(Visual),依靠VB提供的可视化设计平台,开发者不必再为界面的设计而编写大量的程序代码,只需按照设计要求的屏幕布局,在屏幕上“画”出各种“部件”即对象,如窗口、命令按钮、菜单等,并设置这些图形对象的位置、大小、颜色等属性, VB将自动产生出界面设计代码,开发者需要编写的只是实现程序功能的那部分代码,这种“所见即所得”(What You See Is What You Get)的可视化用户界面设计大大提高了程序开发效率。2.3.1 对象的概念VB是基于对象的程序设计语言。用VB进行应用程序的设计过程,实

15、际上就是与一组标准对象进行交互的过程。 对象是具有特殊属性(数据)和行为方式的(方法)的实体,在现实生活中到处可以见到,例如一个气球可以是一个对象,它的材料、颜色、大小等特性称为属性,它们都具有自己的行为,比如一个球可以滚动、停止或旋转。人也是一个对象,人的姓名、性别、身高、年龄、出生地等特征为属性,一个人能够执行的动作和行为有呼吸、吃饭、跑步、唱歌和跳舞等。在面向对象的程序设计中,对象的概念就是对现实世界中对象的模型化,它是代码和数据的组合,同样具有自己的状态和行为。只不过在这里对象的状态用数据来表示,称为对象的属性;而对象的行为用对象中的代码实现,称为对象的方法。不同的对象有不同的方法,当

16、然也不排除有部分重叠。对象可以是应用程序中一个自包含的组件:一方面它具有私有的功能,供自己使用;另一方面又提供公用的功能,供其他用户使用。对象包含数据及其代码。在面向对象的程序设计中,对象是系统中的基本运行实体。在VB中对象的概念和面向对象的程序设计中的对象概念是一致的,但在使用上有很大的区别。在VB中,对象分为两类:一类是由系统设计好的,称为预定义对象,可以直接使用或对其进行操作;另一类由用户定义,可以建立用户自己的对象。 在VB中,窗体和控件就是预定义对象,是由系统设计好提供给用户使用的,其移动、缩放等操作都是由系统预先定义好的,使用非常方便,比如对象的移动。除窗体控件外,VB还提供了其他

17、一些对象,如打印机、调试、剪贴板、屏幕等。 VB系统中的常用对象有窗体、标签、文本框、命令按钮、数据库、图表等。如图2-9所示。对象的应具备的三要素:属性(一个对象的性质,即特征参数的集合)、事件(对象可以响应的,在对象上发生的事情)、方法(对象的动作)。窗体对象图片框对象文本框对象命令按钮对象图2-9 VB系统中的常用对象2.3.2 属性对象的属性是指一个对象所具有的性质或者描述对象的数据、特征。在可视化编程中,每一种对象都有一组特定的属性。对象常见的属性有标题(Caption)、名称(Name)、颜色(Color)、字体大小(FontSize)、是否可见(Visible)等。有许多属性可能

18、为大多数对象所共有,还有一些属性仅局限于个别对象,例如只有命令按钮才有Cancel属性。一个对象属性都有一个默认值,如果不明确地改变该属性值,程序就将使用它的默认值。通过修改对象的属性能够控制对象的外观和操作。而有些属性在运行时是只读的。当改变对象的属性,可以控制对象在程序中作用。有些是可见属性,例如属性的种类、形状、颜色等;有些是不可见属性,例如寿命、年龄等。图2-10 对象的属性设置对象属性的设置一般有两条途径: (1)通过属性窗口设置 选定对象,在属性窗口(如图2-10所示)中找到相应属性,直接进行设置。这种方法的特点是简单明了,其缺点是不能在属性窗口设置所有需要的属性。 (2)通过代码

19、设置 对象的属性也可以在代码中通过编程来设置,一般格式为: 对象名.属性名 = 属性值 例如,设置标签Text1的Text为“属性设置”,代码为: Text1.Text = "属性设置" 注意:对象的大多数属性都可以通过以上两种方式进行设置,而有些属性只能使用程序代码或属性窗口设置其中之一进行设置。 2.3.3 事件对象的事件(Event)就是对象上所发生的事情。在Visual Basic中,事件是预先定义好的、能够被对象识别的动作,如Click(单击)、DblClick(双击)、Load(装入)、MouseMove(移动鼠标)、Change(改变)等。不同的对象能够识别不

20、同的事件。当事件由用户触发(如Click)或由系统触发(Load)时,对象就会对该事件做出响应。例如,把一个吹大的气球看成是一个对象,那么气球对刺破它的事件响应是放气,对气球松开手的事件的响应是升空。再如,我们可以编写一个程序,该程序响应用户的Click事件,只要单击鼠标左键即可在屏幕上显示指定的信息。 响应某个事件后所执行的操作通过一段程序代码来实现,这样的代码叫做事件过程(Event Procedure)。一个对象可以识别一个或多个事件,因此可以使用一个或多个事件过程对用户或系统的事件做出响应。虽然一个对象可以拥有许多事件过程,但在程序中能使用多少事件过程,则要由设计者根据程序的具体要求来

21、确定。 Visual Basic中的事件分为:系统事件和用户事件。 (1)系统事件 由其他事件或Windows操作系统触发的事件称为系统事件,系统事件无需任何用户干预。例如:Timer 事件就是一个系统事件。 (2)用户事件 由用户执行的某些操作所触发的事件称为用户事件。 例如,简单的用户操作, 单击窗体上的命令按钮;在文本框中可显示“欢迎您学习VB程序设计”,是因为在代码窗口有代码“Text1.Text= “欢迎您学习VB程序设计” ”。如图2-11所示。图2-11 单击命令按钮执行结果2.3.4 方法对象的方法(Method)就是要执行的动作。VB的方法与事件过程类似,是一种特殊的过程和函

22、数,它用于完成某种特定功能而不能响应某个事件,如Print(打印对象)、Show(显示窗体)、Move(移动)方法等。每个方法完成某个功能,用户无法看到其实现的步骤和细节,更不能修改,用户能做的工作只是按照约定直接调用它们。如图2-12表示调用Form1的Circle方法,执行结果。图2-12 窗体上画圆的方法(Circle)综上所述,我们可以把属性看成是对象的特征,把事件看成是对象的响应,把方法看成是对象的行为,属性、事件和方法构成了对象的三要素。 2.3.5 窗体 1. 窗体对象特点窗体是在Windows环境下建立直观的应用程序的基础,是VB程序设计的对象,它如同一块画布,在窗体上可以直观

23、地建立应用程序。窗体可以看作是控件的容器,用户界面的控件一般都放置到窗体中。VB的窗体具有Windows窗体的基本特性,图2-13所示是一个窗体的说明图。 标题栏是大多数窗体顶部的彩条,缺省为蓝色。利用标题栏可以在屏幕上拖拽此窗体,双击标题栏将在最大化和恢复该窗体之间做切换。 标题是在窗体标题栏中所见到的文字。系统菜单(控制菜单)是一个简单的菜单,位于窗体左上角,双击该图标将关闭窗体,单击该图标将显示系统命令菜单。 最小化、最大化、关闭按钮分别起使窗体缩小到Windows的任务条上、扩大至整个屏幕、关闭窗体的功能。 图2-13 窗体说明图 窗体的边框给窗体提供了一定的灵活性,可以根据要显示的不

24、同窗体,设定不同的边框值,这些值可以在BorderStyle属性中设置。 VB中的应用程序可以包含许多个窗体,一个标准“.exe”类型的Visual Basic应用程序至少有一个窗体。最初打开新工程时,默认情况下会新建窗体,也可以通过菜单栏上的“工程”菜单项选择“添加窗体”菜单项将其他窗体添加到工程中。 2. 窗体的属性 在VB中应用程序的界面是通过设置窗体的属性实现的,窗体的属性决定了窗体外观。对大部分窗体属性,既可以在属性窗口设置,也可以在程序中设置,只有少量的属性只能在设计状态中设置,或只能在窗体运行期间设置。(1)Name(名称)属性 Name属性是所有对象都具有的属性,是所创建对象的

25、名称。所有的控件在创建时由VB提供一个默认名称。Name属性可以在Name属性窗口的“名称”栏进行修改。在程序中,对象名称是作为对象的标识在程序中引用,不会显示在窗体上。Name是只读属性,在运行时不可更改。 (2)Caption(标题)属性 Caption属性决定了控件上显示的标题内容。可以在设计时通过属性窗口设置,也可以在运行时通过代码设置。格式为: 对象.Caption = 字符串 例如:Form1.Caption= "设置标题属性" (3)Left、Top (左、顶)属性 Left、Top属性分别指定对象的左上角在容器中的横向及纵向坐标(左上角为0,0),即Left

26、属性确定窗体最左端和它的容器最左端之间的距离;Top属性确定窗体最上端和它的容器最上端之间的距离。控件的容器指的是窗体,窗体的容器指的是屏幕(Screen)。度量单位由容器的ScaleMode属性指定,默认的单位是Twip。通常Left和Top属性在一个窗体中总是成对出现的,当用户移动窗体时,这两个属性值都会随之改变。(4)Width、Height(宽、高)属性 Width、Height属性决定了对象的宽度和高度。度量单位由容器的ScaleMode属性指定,默认的单位是Twip。可以在属性窗口中设置,也可通过代码设置,格式为: 对象.Height = 数值 和 对象.Width = 数值 它们

27、的最大值由系统决定。 (5)ScaleMode属性 ScaleMode属性为设置对象坐标的度量单位。取值及对应的度量单位如表2-1所示。 表2-1 ScaleMode属性取值及对应度量单位表取值 度量单位 0 User(用户自定义模式) 1 Twip(缇,系统缺省设置) 2 Point(点或磅) 3 Pixel(像素) 4 Character(字符) 5 Inch(英寸) 6 Millimeter(毫米) 7 Centimeter(厘米) 其中0(用户自定义模式)和3(像素模式)不可用于打印机(Printer)对象。 (6)Enabled(可用)属性 Enabled属性设置对象是否可以操作。值

28、为True时允许操作,值为False时禁止操作,对可视对象,显示为灰色。同样该属性可以在属性窗口中或通过代码设置,格式为: 对象.Enabled = Boolean 默认值为True。 (7)Visible(可见)属性 Visible属性为设置对象是否可见。值为True时,对象在程序运行时可见;值为False时,对象在程序运行时隐藏起来,用户看不见,但对象本身存在。(8)Font(字体)属性 Font属性为设置输出字符的字体类型,改变文本的外观。 字体本身又是一个对象,又有自己的属性,包括字体类型(FontName)、字体大小(FontSize)、是否粗体(FontBold)、是否斜体(Fon

29、tItalic)、是否加下划线(FontUnderline)等。设置时通过属性窗口,点击Font右边的“”可弹出字体对话框,如图2-14所示,可通过字体对话框来设置各种属性。 图2-14 字体属性设置对话框 此外,还可以在运行时通过编写代码来实现对字形属性的设置,具体设置方式如下: 字体类型 字体类型可以通过FontName属性设置,格式为:对象名称.FontName = "字体名称" FontName可以作为窗体、控件或打印机的属性,返回或设置显示文本所用的字体。 Visual Basic 中可用的字体取决于系统的配置、显示设备和打印设备。与字体相关的属性只能设置为真正存

30、在的字体的值。 字体大小 字体大小通过FontSize属性来设置, 格式为: 对象名称.FontSize = 点数 FontSize属性返回,显示文本所用的字体的大小,单位为磅。例如: Form1.FontSize = 20 '设置窗体(Form1)的字体大小为20磅 FontSize的最大值为 2160 磅,在默认情况下,FontSize为9磅。 其他属性 a)粗体 粗体字通过FontBold属性设置, 格式为: 对象名称.FontBold = Boolean 当FontBold属性为True时,文本以粗体字输出,否则按正常字输出。该属性的默认值为False。 b)斜体 斜体字通过F

31、ontItalic属性设置,格式为:对象名称.FontItalic = Boolean 当FontItalic属性为True时,文本以斜体字输出,否则按正常字输出。该属性的默认值为False。 c)加下划线 加下划线通过FontUnderline属性设置,格式为:对象名称.FontUnderline = Boolean 如果把FontUnderline属性设置为True,则可使输出的文本加下划线。该属性的默认值为False。 d)加删除线 删除线即在文本中部画一条直线。通过对FontStrikethru属性的设置可以使输出的文本加删除线。 格式为:对象名称.FontStrikethru = B

32、oolean 如果把FontStrikethru属性设置为True,则可使输出的文本加删除线。该属性的默认值为False。 在上面的各种属性中,可以省略方括号中的内容,此时,将返回属性的当前值;如果省略对象名称,则默认为当前窗体的属性。 (9)ForeColor(前景色)属性 ForeColor属性为设置或返回对象的前景颜色。其值是一个十六进制常数,用户可以在调色板中直接选择所需的颜色,如图2-15所示。 图2-15前景色属性值设置 (10)BackColor(背景色) 属性BackColor属性为设置或返回对象的背景颜色。其设置与ForeColor属性的设置相同。 (11)MaxButton

33、、MinButton(最大、最小化按钮) 属性MaxButton、MinButton这两个属性决定窗体是否具有最大化和最小化按钮。MaxButton属性为True时,表明窗体有最大化按钮;为False时,表明窗体没有最大化按钮。MinButton属性为True时,表明窗体有最小化按钮;为False时,表明窗体没有最小化按钮。要显示最大化或最小化按钮,BorderStyle属性应设置为1或2。当一个窗体被最大化时,最大化按钮会自动变为恢复按钮。 (12) BorderStyle(边框类型)属性BorderStyle属性为确定窗体边框的样式。取值及其说明如表2-2所示。 在运行期间,BorderS

34、tyle属性是只读属性。它只能在设计阶段设置,不能在运行期间改变。 BorderStyle属性除应用于窗体外,还可用于多种控件,其设置值也不一样。 表2-2窗体的BorderStyle属性取值表 符号常数 取值说明 vbBSNone 0 无(没有边框或与边框相关的元素) vbFixedSingle 1 固定单边框。可以包含控制菜单框, 标题栏,最大化 和 最小化按钮 。只有使用最大化和最小化按钮才能改变大小。 vbSizable 2 (缺省值)可调整的边框。可以使用设置值1列出的任何可选边框元素重新改变尺寸。 vbFixedDouble 3 固定对话框。可以包含控制菜单框和标题栏,不能包含最大

35、化和最小化按钮,不能改变尺寸。 vbFixedToolWindow 4 固定工具窗口。不能改变尺寸。显示关闭按钮并用缩小的字体显示标题栏。窗体在 Windows的任务条中不显示。 vbSizableToolWindow5 可变尺寸工具窗口。可变大小。显示关闭按钮并用缩小的字体显示标题栏。窗体在 Windows的任务条中不显示。 (13)ControlBox(控制框)属性ControlBox属性可返回或设置一个值,指示在运行时系统菜单是否在窗体中显示。设置为True(缺省值),则显示系统菜单;设置为False,则不显示系统菜单。为了显示系统菜单,还必须将窗体的 BorderStyle 属性值设置

36、为 1(固定单边框),2(可变尺寸)或 3(固定对话框)。该属性在运行时为只读。 (14)Icon(图标)属性Icon 属性是设置在运行时窗体处于最小化时显示的图标。所加载的文件必须有“.ico ”文件扩展名和格式,如果不指定图标,窗体会使用VB 缺省图标。该属性可以在属性窗口中设置,也可通过代码设置,使用LoadPicture函数或另一个窗体的Icon属性给当前窗体的该属性赋值。 (15)Moveable(可移动)属性Moveable属性为返回或设置窗体是否可以移动。Moveable属性可以在属性窗口中或运行时通过代码设置,格式为: 对象.Moveable = Boolean 为True(默

37、认值)时,窗体可以移动,为False时,窗体不可移动。 (16)Picture(图形)属性Picture属性用来在对象中显示一个图形。该属性可以在属性窗口中设置,也可以通过代码由LoadPicture函数和其他对象的Picture属性设置。LoadPictue函数的语法:LoadPicture(filename, size, colordepth,x,y)参数说明见表2-3、2-4、2-5所示。表2-3 LoadPictue函数的语法参数说明部分描述filename可选的。字符串表达式指定一个文件名。可以包括文件夹和驱动器。如果未指定文件名,LoadPicture 清除图象或 PictureB

38、ox 控件。size可选变体。如果 filename 是光标或图标文件,指定想要的图象大小。colordepth可选变体。如果 filename 是一个光标或图标文件,指定想要的颜色深度。x可选变体,如果使用 y ,则必须使用。如果 filename 是一个光标或图标文件,指定想要的宽度。在包含多个独立图象的文件中,如果那样大小的图象不能得到时,则使用可能的最好匹配。只有当 colordepth 设为 vbLPCustom 时,才使用X 和 Y值。For icon files 255 is the maximum possible valuey可选变体,如果使用 x, 则必须使用。如果 fil

39、ename 是一个光标或图标文件,指定想要的高度。在包含多个独立图象的文件中,如果那样大小的图象不能得到时,则使用可能的最好匹配。For icon files 255 is the maximum possible value表2-4 LoadPictue函数的参数size说明常量值描述vbLPSmall0系统小图标。vbLPLarge1系统大图标,由视频驱动程序决定。vbLPSmallShell2外壳小图标大小,由“控制面板”中的 Display Properties 对话框中 Appearance 选项卡上的 Caption Buttons 的大小设置决定。vbLPLargeShell3外

40、壳大图标大小,由“控制面板”中的 Display Properties 对话框中 Appearance 选项卡上的图标大小设置决定。vbLPCustom4自定义大小,由 x 和 y 参数提供值。表2-5 LoadPictue函数的参数colordepth说明常量值描述vbLPDefault0如果使用指定文件,则为最佳可用匹配。vbLPMonochrome12 色。vbLPVGAColor216 色。vbLPColor3256 色。VB系统中可以识别的图形格式有:位图文件(.bmp)、图标文件(.ico)、光标文件(.cur),行程编码文件(.rle)、元文件(.wmf)、增强的元文件 (.em

41、f), 文件GIF(.gif)以及 JPEG文件(.jpg)。赋值不带参数的 LoadPicture 将清除窗体、图片框及图象控件中的图形。要加载在窗体为背景的图形,必须将 LoadPicture 的返回值赋给要显示该图片的对象的 Picture 属性。例如:Set Picture = LoadPicture("C:UsersZhengliminPicturesintro.jpg")如果要将图标赋予窗体,则要把 LoadPicture 函数的返回值赋给 Form 对象的 Icon 属性:Set Form1.Icon = LoadPicture("MYICON.IC

42、O")(17)WindowState(窗口状态)属性WindowState属性可以把窗体设置成在启动时最大化、最小化或正常大小。WindowsState属性为0(Normal)时,窗体显示为正常大小,即设计时的大小;为1(Minimized)时,窗体最小化成图标;为2(Maximized)时,窗体最大化显示。 3. 窗体的事件 当用户执行与窗体相关的某些操作时触发的事件被称为窗体事件。常用的窗体事件有: (1)Load(装入)事件 Load事件是在窗体被装载时发生的事件。一旦装载窗体,启动应用程序就自动产生该事件,当执行应用程序时,VB调用Form_Load事件过程。Load事件适用

43、于在启动应用程序时对属性和变量的初始化。例如,用Load事件为应用举例进行赋值。 Private Sub Form_Load() Text1.Text = "" Form1.Caption = "VB实例" End Sub (2)Unload(卸载)事件 删除窗体时发生Unload事件,VB调用Form_Unload事件过程。当该窗体在被装载时,它的所有控件都要重新初始化。这个事件是由用户动作(用控件、菜单关闭窗体)或一个Unload语句触发的。 (3)Click(单击)事件 Click事件是在程序运行后,用鼠标单击窗体操作时产生的事件。 (4)DblC

44、lick(双击)事件 双击窗体产生DblClick事件,执行DblClick事件过程。 (5)Activate、Deactivate(活动、非活动)事件 激活窗体时发生Activate事件,取消该活动窗体激活另一个窗体时该窗体发生Deactivate事件。窗体可通过用户的操作变成活动窗体,如用鼠标单击窗体的任何部位或在代码中使用Show或SetFocus方法。 (6)Paint(绘画)事件 重新绘制一个窗体时发生Paint事件。当移动、放大、缩小该对象或一个覆盖该对象的窗口移动后,该窗体暴露出来,就会发生此事件。 除以上事件外,窗体的常用事件还有:Resize(改变尺寸)事件, KeyPres

45、s(按键)事件,MouseDown(鼠标按下)事件、MouseUp(鼠标松开)事件、MouseMove(鼠标移动)事件等。例如,窗体最大化或还原时,均发生Resize事件。 (7)各事件先后比较4. 窗体的方法 (1)Show方法 Show方法用以显示Form 对象。语法格式为:窗体名.Show 模式 如果调用 Show 方法时指定的窗体没有装载,VB将自动装载该窗体。另外,应用程序的启动窗体在其 Load 事件调用后会自动出现。 可选参数“模式”,用来确定被显示窗体的状态:值等于1时,表示窗体状态为“模态”(模态是指鼠标只在当前窗体内起作用,只有关闭当前窗口后才能对其他窗口进行操作);值等于

46、0时,表示窗体状态为“非模态”(非模态是指不必关闭当前窗口就可以对其他窗口进行操作)。 (2)Hide方法 Hide方法用以隐藏Form 对象,但不能使其卸载。语法格式为:窗体名.Hide 如果省略窗体名,则默认为当前窗体(带焦点的窗体)。 隐藏窗体时,它就从屏幕上被删除,并将其 Visible 属性设置为 False。 用户将无法访问隐藏窗体上的控件,但是对于运行中的VB应用程序,或对于 Timer 控件的事件,隐藏窗体的控件仍然是可用的。 如果调用 Hide 方法时窗体还没有加载,那么 Hide 方法将加载该窗体但不显示它。 (3)Move方法 Move方法用以移动Form 或控件。格式为

47、:对象.Move Left ,Top ,Width ,Height 对象为窗体或控件名,只有Left 参数是必需的。但是,要指定任何其他的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定 Left 和 Top 参数,则无法指定 Width 参数。任何没有指定的尾部的参数则保持不变。 (4)Cls方法 Cls方法是清除运行时窗体(或图片框)中生成的图形和文本。形式如下:对象.Cls (5)Print方法 Print方法用于在窗体上输出文本,例如:在窗体上输出文本“你好!欢迎您学习V B!” 可用:Print “你好!欢迎您学习VB!”2.3.6 控件及其操作控件和窗体一样,都

48、是VB中的对象,共同构成用户界面。VB的控件是具有自己的属性、事件和方法的对象,通常分为以下3种类型。 1. 标准控件(也称内部控件) 在默认状态下工具箱中显示的控件都是内部控件,这些控件被封装在VB的可执行文件中,不能从工具箱中删除,如命令按钮、文本框、单选按钮、复选框等。 2. ActiveX控件 ActiveX这类控件单独保存在“.ocx”类型的文件中,其中包括各种版本VB提供的控件,以及仅在专业版和企业版中提供的控件,如公共对话框、动画控件等。另外还有许多软件厂商提供的ActiveX控件。 3. 可插入对象 用户可将Excel工作表或PowerPoint幻灯片等作为一个对象添加到工具箱

49、中,编程时可根据需要随时创建。4. 控件的操作(1)控件的添加在窗体上添加控件,有两种方式。单击工具箱中的控件图标,此时光标在窗体上变为“+”号,在窗体上选定适当的位置,按下鼠标左键,不松开,同时向右下方拖动鼠标,窗体上出现一个矩形框,松开鼠标左键,完成在窗体上画一个控件。双击工具箱中的控件图标,系统自动在窗体中央画出一个控件,所画控件的大小和位置是固定的。如图2-16所示。图2-16 双击工具箱中命令按钮结果如果要在窗体上画多个同一类型的控件,可以采用如下步骤:按下Ctrl键后,单击工具箱中的控件图标,然后松开Ctrl键。在窗体上画控件,可画多个。画完这个类型的控件后,单击工具箱中的指针图标

50、或选择其它控件。(2)控件的位置和大小控件的大小和位置可以调整,分为粗略调整和准确调整。粗略调整。在窗体上选中要调整的控件,此控件的边框上有8个实心小方块,用鼠标拖动控件调整位置,拖拉8个方块可实现一个或两个方向的缩放。准确调整。通过改变属性窗口中的4个相关的属性值,改变控件的大小和位置。其中,Width和Height改变控件的大小,Left和Top改变控件的位置。(3)控件的复制和删除控件和文本信息一样可以进行剪切、复制和粘贴。控件的复制步骤如下:画好一个控件(以命令按钮为例)。选中它,单击鼠标右键,点击“复制”。在窗体空白处,单击鼠标右键,点击“粘贴”,屏幕上将出现一个对话框,“已经有一个

51、控件为' Command1'。创建一个控件数组吗?”询问是否建立控件数组,选择“是”或“否”后,则在窗体左上角出现复制的控件。删除控件,只要先选中要删除的控件,然后按Del键即可。(4)多个控件的操作如果要对多个控件进行操作,首先选中多个控件的方式有两种:先按住Shift键,不要松开,再分别单击要选中的控件。每个选中的控件周围都有8个小方块,但只有一个是实心方块,其它的都是空心方块。如图2-17所示,其中实心方块的Command3是当前控件,也叫做活动控件。图2-17选中多个控件如果要选中的控件都在一个矩形框内,则通过拖动鼠标画出一个虚线矩形,在此矩形内的控件都被选中,同样地,

52、只有一个控件是当前控件。为了使运行界面美观,有时需要调整控件的位置和大小,使它们排列整齐、大小一致。首先选中这些控件,然后选择菜单命令“格式 / 对齐”,实现多个控件水平或垂直方向对齐;“格式 /统一尺寸”,实现多个控件高度或宽度一致;“格式 / 水平间距”、“格式 / 垂直间距”, 实现多个控件水平 / 垂直间距一致;“格式 / 顺序”,当多个控件位置重叠时,改变它们的显示顺序。当选中多个控件后,属性窗口中属性项数会减少,只显示它们共同的属性。如图2-17所示,此时属性窗口中就没有名称(Name)属性。如果修改它们的共同属性,则被选中的所有控件的属性都将作相应的修改。2.4可视化程序设计举例

53、【例2-2】 本例主要初学者理解窗体设计中的属性设置与执行事件代码的结果。要求窗体的标题为“可视化实例”,字体为宋体的“三”号字体,背景色为指定“浅蓝色”。设计好在窗体属性后,再添加3个文本框,两个命令按钮,试观察文本框Font属性与Command按钮Font属性。命令按钮1的Click事件为清除文本框1的内容,命令按钮2的Click事件为结束程序运行。当文本框1的内容发生变化时,将文本框1的内容变小写给文本框2;当文本框1的内容发生变化时,将文本框1的内容变大写给文本框3。试实现此例程序设计。解:(1)在VB工程1下新建窗体1,如图2-18所示。图2-18例2-1 工程设计窗口(2)在属性窗

54、口设置窗体属性:Form1.Caption = “可视化实例”,Form1.BackColor= &H00FFC0C0&, 设计如图2-19所示。Form1. FontName = “宋体”,Form1.FontSize= “三号”,设计如图2-20所示。图2-19例2-1窗体属性设置窗口1图2-20例2-1窗体属性设置窗口2(3)添加控件:添加3个文本框,两个命令按钮。 如图2-21所示。图2-21例2-1窗体界面设计观察添加的文本框Font属性与Command按钮Font属性同窗体属性一致。因窗体对控件而言是容器,所以控件的一些属性对窗体而言,具有继承性,这个后面程序设计还

55、会有体会。如图2-22所示,为文本框1的Font属性同窗体1是一样的。图2-22窗体与控件之间的继承性(4)设置控件的属性:命令按钮的 “Caption”属性和文本框的 “BackColor”属性,如图2-23所示。图2-23 例2-1控件属性设置(5)编程策略依题意命令按钮1的Click事件为清除文本框1的内容,即在Command1_Click下代码为:Text1.Text = "";命令按钮2的Click事件为结束程序运行即在Command2_Click下代码为:End。当文本框1的内容发生变化时,将文本框1的内容变小写给文本框2;当文本框1的内容发生变化时,将文本框1

56、的内容变大写给文本框3。则为引发文本框1的Change事件,具体代码为:Text2.Text = LCase(Text1.Text),Text3.Text = UCase(Text1.Text)。(6)编写代码Private Sub Command1_Click()'清除文本框1的内容Text1.Text = ""End SubPrivate Sub Command2_Click()'结束EndEnd SubPrivate Sub Text1_Change()'当文本框1的内容发生变化时'将文本框1的内容变小写给文本框2Text2.Text = LCase(Text1.Text)'当文本框1的内容发生变化时'将文本框1的内容变大写给文本框3Text3.Text = UCase(Text1.Text)End Sub(7)保存实例的Form文件和工程文件如图2-24和2-25所示。窗体的文件名为2-1.frm,工程的文件名为2-1.vbp。图2-24 保存实例的Form文件图2-25 保存实例的工程文件(8)运行此实例,当单击“清除”按钮时,3个文本框的内容均被清除,但在Command1_Click下代码只为一行:Text1.Text = &quo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论