资源描述
第1章VisualBasic程序设计概述,第1章VisualBasic程序设计概述,本章主要介绍程序设计的一些基本知识、基本概念和基本方法,为学习和掌握VisualBasic程序设计奠定基础。,1.1计算机程序设计概述计算机程序就是计算机解决某些特定问题所需的符号化指令序列,或者说是用计算机语言描述的特定问题的解决步骤。编写程序的过程称为程序设计,在程序设计时离不开程序设计语言。通常把给计算机编制程序的符号系统及规则称为计算机的程序设计语言。这些符号系统及规则构成了计算机的指令系统。当我们利用计算机完成一项工作时,只需要告诉计算机什么时候、在什么条件下干什么,计算机便根据指令一条一条地执行,并返回结果。,1.1.1程序设计语言简介任何一个计算机系统都是按照人们用某种程序设计语言编写的程序进行工作的,人们通过程序设计语言编写的程序来指挥和控制计算机运行。程序设计语言是人与计算机进行交流的有效工具,在计算机科学技术的发展过程中,发挥了巨大作用。程序设计语言经历了从低级到高级的发展阶段。,1.机器语言计算机能直接识别的程序设计语言只有机器语言。机器语言是计算机能执行的指令代码,这种语言是由若干0和1的序列组成的指令,也就是人们常说的二进制代码。用机器语言设计的程序,称为机器语言程序。这是一种最低级的计算机语言程序。2.汇编语言汇编语言用比较直观、便于记忆的指令符号来代替二进制数字的机器指令代码,汇编语言的每条指令通常使用英文单词的缩写形式表示,也叫助记符。,3.高级语言高级语言接近人们熟悉的自然语言(主要指英语),掌握与使用都十分方便。高级语言具有通用性,在其初始阶段是面向过程的语言。高级语言与具体的计算机指令系统没有直接关系,因此用高级语言设计的程序可以在各种类型的计算机上运行。计算机并不能识别与执行用高级语言设计的程序,因此,必须将高级语言程序转换为机器语言程序,才能在计算机上得以执行,这种转换的过程叫“翻译”。,任何一种高级语言系统都包含有专门用于“翻译”的程序。对高级语言的“翻译”有两种方式,一种是“解释”方式,即“翻译”一句执行一句,负责这种“翻译”方式的程序叫解释程序;另一种是“编译”方式,是将整个程序“翻译”完毕后再予以执行,负责这种“翻译”方式的程序叫编译程序。“翻译”前的程序叫源程序或源代码,源代码通常是文本形式;“翻译”后的程序叫目标程序或目标代码,目标代码是二进制形式。用解释程序“翻译”执行程序比编译程序“翻译”执行程序慢得多。不论是解释还是编译,在“翻译”过程中都会自动检查源程序中的语法错误。,1.1.2算法及其描述1.算法的概念什么是算法?当代著名计算机科学家D.E.Knuth称:“一个算法,就是一个有穷规则(指令)的集合。其中之规则规定了一个解决某一特定类型的问题的运算序列。”简单地说,任何解决问题的过程都是由一定的步骤组成的,把解决问题确定的方法和有限的步骤称作为算法。通俗地说,算法就是指为解决一个问题而采取的方法和步骤,或者说是解题步骤的精确描述。不要认为只有“计算”问题才有算法。广义地说,处理任何问题都有一个“算法”问题,例如,菜谱就包含算法,因为它除了列出做菜的原料以外,还列出操作的每一步骤。当然,这里讨论的是计算机算法,即计算机能执行的算法。,2.算法的表示表示一个算法可以采用不同形式。(1)用自然语言表示算法【例1-1】计算函数M(x)的值:其中a,b,c为常数。,算法分析:本题是一个数值运算问题。其中M代表要计算的函数值,有两个不同的表达式,根据x的取值决定采用哪一个算式。根据计算机具有逻辑判断的基本功能,用计算机解题的算法如下:1)将a、b、c和x的值输入到计算机。2)判断xa,如果条件成立,执行3),否则执行4)。3)按表达式bx+2a计算出结果存放到M中,然后执行5)。4)按表达式a(cx)+3c计算出结果存放到M中,然后执行5)。5)输出M的值。6)算法结束。,(2)用流程图表示算法流程图是用一些图框、流程线以及文字说明来描述解决问题的方法与步骤。用流程图来表示算法,直观、形象、容易理解。1)传统流程图:美国国家标准化协会ANSI(AmericanNationalStandardInstitute)规定了一些常用的流程图符号,见表1-1。用流程线将各种操作图符号连接在一起就构成了一个完整的算法流程图。这种流程图称为传统流程图。,表1-1流程图符号,例1-1中算法的流程图如图1-1所示。图1-1传统流程图,2)N-S流程图:传统流程图虽然形象直观,但对流程线未作限制,使用者可以毫无顾忌地使流程线随意转来转去,使流程变得没有规律,阅读者要花很大精力去追踪流程,从而使人们难以理解程序算法的逻辑。如果程序较复杂,流程线就会如同一团乱麻,人们将这种算法比喻成一碗面条(ABowlofSpaghetti),乱无头绪。这种算法难以阅读和修改,从而使算法的可靠性和可维护性难以保证。在N-S流程图中,完全去掉了流程线。全部算法写在一个大矩形框中,在某一矩形框中还可以包含一些属于它的小矩形框。这种流程图又称为盒图,因为每个矩形如同一个方盒。,使用N-S流程图表示【例1-1】的算法如图1-3所示。说明:本书所绘的N-S流程图是经典N-S流程图的改进,称为N-S-Z流程图。,1.1.3程序设计方法概述程序设计方法种类很多,主要有模块化程序设计方法、结构化程序设计方法、面向对象程序设计方法等。1.模块化程序设计方法模块化程序设计方法是一个常用且有效的方法。在设计和编写大型程序时,可以对其进行模块化分解,以降低程序的复杂性,提高程序的正确性、可靠性、可读性和可维护性。,模块是数据说明、接口声明和执行语句等程序对象的集合,可独立命名,并通过模块名来调用、访问和执行,如VB语言的子过程、函数、模块等程序对象可看成是模块。模块化就是把大程序划分成若干模块,每个模块完成一个子功能,模块间相互协调,共同完成特定功能,其实质是把复杂问题分解成许多容易解决的小问题,如图1-3所示。图1-3问题分解,2.结构化程序设计方法结构化程序设计方法产生于20世纪60年代末,它对后来的程序设计方法的研究和发展产生了重大影响,直到今天它仍然是程序设计中采用的主要方法。结构化程序设计的概念最早由著名计算机科学家E.W.Dijkstra提出。1966年,Bohm和Jacopini证明了“只用三种基本的控制结构就能实现任意单入口和单出口的程序”。这三种基本控制结构是“顺序结构”、“判断结构”和“循环结构”,如图1-4所示。1972年,IBM公司的Mills进一步提出,程序应该只有一个入口和一个出口。1971年,IBM公司在纽约时报信息库管理系统的设计中首次成功地使用了结构化程序设计技术。,图1-4三种基本控制结构的N-S-Z流程图,结构化程序设计主要包括:一是使用三种基本控制结构;二是采用自顶向下和逐步求精方法。自顶向下和逐步求精方法是求解复杂问题的有效方法。自顶向下和逐步求精方法是由抽象到具体、由粗到细的方法。第一次细化称为“顶层设计”,然后通过一步一步细化,它们依次称为第二层、第三层设计,直到不需细化为止。细化结果可得到一个树型层次结构图,如图1-5所示。图1-5层次结构图,3.面向对象程序设计方法模块化和结构化程序设计方法属于传统的程序设计方法。但用传统程序设计方法开发的程序不易维护和修改,一旦需要修改,将牵一发而动全局,修改工作量将会大幅度增加。针对传统程序设计方法的不足和缺陷,在20世纪80年代,开始研究面向对象程序设计方法,进入20世纪90年代,面向对象程序设计方法趋于完善和成熟,同时基于面向对象的程序设计语言不断出现,高级语言开始引入面向对象概念和理念,如C+语言。,面向对象的程序设计通过类、对象、继承、多态等机制形成一个完善的编程体系。面向对象编程(Object-OrientedProgramming,OOP)将程序设计中的数据与对数据的操作作为一个不可分割的整体,通过由类生成的对象来组织程序。对象包含属性与方法,能识别和响应一定的事件。面向对象程序设计并不绝对排斥结构化程序设计方法,而将结构化程序设计方法中的三种基本结构变为其程序设计中局部代码设计的基本结构,例如,在面向对象程序设计中,对象的事件方法、属性等代码的设计仍然遵循三种基本结构的原则。,面向对象程序设计方法一般分三级设计:概念级、系统级和规范级。概念级设计:从实际问题出发,分析用户需求和功能需求,识别问题中所涉及的所有对象(实体)及相互关系,根据分析结果建立求解问题的概念模型(用图形表示)。详细描述每一对象的属性(一组变量、数据结构、状态)和操作(置初值、查询、修改、运算)。系统级设计:进一步分析对象及相互作用,对对象进行取舍,增加附加对象,选择控制流方法,创建对象实例,将概念级创建的概念模型转换成现实模型。规范级设计:分析现实模型,建立和绘制“类结构表”,明确描述类层次结构及其继承关系,描述类的所有操作和方法,将现实模型转换成便于程序实现的设计规范,程序员根据设计规范设计算法和编写程序。,1.2VisualBasic简介VisualBasic(简称VB)是美国微软(Microsoft)公司推出的Windows环境下的软件开发工具,使用VB可以既快又简单地开发Windows应用软件。1.2.1VisualBasic概述Visual是指开发图形用户界面(GUI)的方法。Visual的意思是“视觉的”或“可视的”,也就是直观的编程方法。在VB中引入了控件的概念,如各种各样的按钮、文本框、复选框等。VB把这些控件模式化,并且每个控件都由若干属性来控制其外观、工作方法。这样,采用Visual方法无需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的控件加到窗体上。,1.2.2VisualBasic的发展过程早在1991年,为了简化Windows应用程序的开发,微软公司推出了VisualBasic1.0。比尔盖茨说,VisualBasic1.0的推出是“惊世骇俗的”、“令人震惊的新奇迹”。它极大地改变了人们对Windows的看法以及使用Windows的方式。1992年,经过对VisualBasic1.0的修改后,微软推出了VisualBasic2.0。1993年经再次修改完善后,VisualBasic3.0上市。,1.2.2VisualBasic的发展过程1995年,随着Windows95轰轰烈烈的发布,VisualBasic4.0也随之问世。1997年,微软公司开始推出Windows开发工具套件MicrosoftVisualStudio1.0,其中包括了VisualBasic5.0,1998年发布的MicrosoftVisualStudio98则包含了VisualBasic6.0。VisualBasic5.0以前的版本主要应用于DOS和Windows3.x环境中16位程序的开发,从VisualBasic5.0以后的版本则只能运行在Windows95或WindowsNT操作系统下,是一个32位应用程序的开发工具。,VisualBasic6.0共有3个版本:标准版、专业版、企业版。其中标准版主要是为初学者了解基于Windows的应用程序开发而设计的;专业版主要是为专业人员创建客户服务器应用程序而设计的;企业版则是为创建更高级的分布式、高性能的客户服务器或InternetIntranet上的应用程序而设计的。2003年推出VisualBasic.NET,2005年推出VisualBasic2005。,1.2.3VisualBasic的特点VB是从BASIC发展而来的,对于开发Windows应用程序而言,VB是目前所有开发语言中最简单、最容易使用的语言。作为程序设计语言,VB程序设计具有以下特点。1.可视化的设计平台2.面向对象的设计方法3.事件驱动的编程机制4.结构化的设计语言5.充分利用Windows资源6.开放的数据库功能与网络支持,1.3VisualBasic程序设计的基本概念传统的编程方法使用的是面向过程、按顺序进行的机制,其缺点是程序员始终要关心什么时候发生什么事情,处理Windows环境下的事件驱动方式工作量太大。VB采用的是面向对象、事件驱动编程机制,程序员只需编写响应用户动作的程序,如移动鼠标、单击事件等,而不必考虑按精确次序执行的每个步骤,编写代码相对较少。另外,VB提供的多种“控件”可以快速创建强大的应用程序而不需涉及不必要的细节。,1.3.1可视化编程与事件驱动编程VB使用的“可视化编程”方法,是“面向对象编程”技术的简化版。在VB环境中所涉及到的窗体、控件、部件和菜单项等均为对象,程序员不仅可以利用控件来创建对象,而且还可以建立自己的“控件”,这是Windows环境下的编程新概念。,1.3.1可视化编程与事件驱动编程利用可视化编程,程序员通过对鼠标进行单击操作就能够创建图形用户界面(GUI)。程序员编写代码来描述用户与这个GUI交互时(单击、按键、双击等)所发生的事件,这些称为事件的内容是由Windows操作系统传递给程序的。编写响应这些事件的代码称为事件驱动编程。利用事件驱动编程,用户(不是程序员)可以指明程序执行的顺序。实际上是用户“驱动”程序,而不是程序“驱动”用户,这样计算机将变得更加“友好”。,1.3.2对象的属性、事件和方法在现实生活中,任何一个实体都可以视为一个对象(Object)。如一只气球是一个对象,一台电脑也是一个对象。在VB中,常用的对象有工具箱中的控件、窗体、菜单、应用程序的部件以及数据库等。从可视化编程的角度来看,这些对象都具有属性(数据)和行为方式(方法)。简单地说,属性用于描述对象的一组特征,方法为对象实施一些动作,对象的动作则常常要触发事件,而触发事件又可以修改属性。一个对象建立以后,其操作就通过与该对象有关的属性、事件和方法来描述。,1.对象的属性每一种对象都有一组特定的属性。有许多属性可能为大多数对象所共有,如BackColor属性定义对象的背景色。还有一些属性只局限于个别对象,如只有命令按钮才有Cancel属性,该属性用来确定命令按钮是否为窗体默认的取消按钮。,1.对象的属性每一个对象属性都有一个默认值,如果不明确地改变该值,程序就将使用它。通过修改对象的属性能够控制对象的外观和操作。对象属性的设置一般有两条途径。1)选定对象,然后在属性窗口中找到相应属性直接设置。这种方法的特点是简单明了,每当选择一个属性时,在属性窗口的下部就显示该属性的一个简短提示,缺点是不能设置所有所需的属性。2)在代码中通过编程设置,格式为:对象名.属性名属性值如下述代码可以设置标签控件Label1的标题为“轻轻松松学用VB6.0”:Label1.Caption轻轻松松学用VB6.0,2.对象的事件事件(Event)就是对象上所发生的事情。在VB中,事件是预先定义好的、能够被对象识别的动作,如单击(Click)事件、双击(DblClick)事件、装载(Load)事件、鼠标移动(MouseMove)事件等,不同的对象能够识别不同的事件。当事件发生时,VB将检测两条信息,即发生的是哪种事件和哪个对象接收了事件。每种对象能识别一组预先定义好的事件,但并非每一种事件都会产生结果,因为VB只是识别事件的发生。为了使对象能够对某一事件做出响应(Respond),就必须编写事件过程。,事件过程是一段独立的程序代码,它在对象检测到某个特定事件时执行(响应该事件)。一个对象可以响应一个或多个事件,因此可以使用一个和多个事件过程对用户或系统的事件作出响应。程序员只需编写必须响应的事件过程,而其他无用的事件过程则不必编写,如命令按钮的“单击”(Click)事件比较常见,其事件过程需要编写,而其MouseDown或MouseUp事件则可有可无,程序员可根据需要选择。,3.对象的方法一般来说,方法就是要执行的动作。上面所述的气球本身就具有其固有的方法和动作。如:充气方法(用氦气充满气球的动作),放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。用户对具体实现过程并不关心,关键是最终收到的效果。VB的方法与事件过程类似,它可能是函数,也可能是过程,它用于完成某种特定功能而不能响应某个事件。如对象打印(Print)方法、显示窗体(Show)方法、移动(Move)方法等。每个方法完成某个功能,但其实现步骤和细节用户既看不到、也不能修改,用户能做的工作就是按照约定直接调用它们。,方法只能在代码中使用,其用法依赖于方法所需的参数的个数以及它是否具有返回值。当方法不需要参数并且也没有返回值时,可用下面的格式调用对象方法。对象名.方法名如图片框Picture1有刷新显示方法Refresh,在事件过程代码中调用该方法的代码为:Picture1.Refresh,1.3.3VisualBasic的编程环境1.集成开发环境介绍启动VB后,出现“新建工程”对话框,如图1-6所示。使用VB开发的应用程序或其他程序都被称为“工程”。选择“新建”选项卡可以建立一个新的工程,选择“现存”选项卡可以打开原来已有的工程,选择“最新”选项卡可以打开最近建立或使用过的工程。图1-6“新建工程”对话框,在“新建”选项卡中选中“标准EXE”,然后单击“打开”按钮,出现集成开发环境的主界面,如图1-7所示。图1-7VB6.0集成开发环境VB6.0集成开发环境除了具有标准Windows环境的标题栏、菜单栏、工具栏外,还有工具箱、属性窗口、工程管理器窗口、窗体设计器、立即窗口、窗体布局窗口等开发工具。,VB集成开发环境中的默认工具栏是“标准”工具栏,“标准”工具按钮见表1-2。表1-2“标准”工具按钮,2.控件工具箱新建或打开“标准EXE”工程时,VB将同时打开控件工具箱。VB的控件工具箱包含了建立应用程序所需的各种控件,如图1-8左所示。另外,VB还提供了很多ActiveX控件。使用这些控件有两种方法:一是向工具箱中添加需要的控件,二是自己定义一张“选项卡”。图1-8控件工具箱与部件对话框,2.控件工具箱(1)添加ActiveX控件向工具箱中添加ActiveX控件的步骤如下:1)在工具箱的空白处单击鼠标右键。在弹出的快捷菜单中选择“部件”,或单击“工程”菜单中的“部件”子菜单,弹出“部件”对话框(图1-8右)。2)在打开的“部件”对话框中选中所需要的控件,然后单击“确定”按钮后退出,所选择的控件即可添加到工具箱中。要删除工具箱中的ActiveX控件,按照上述操作去掉选中标志。,(2)定义选项卡VB6.0与早期版本的工具箱的主要差别就是:可以定义选项卡来组织、安排控件。按照下列操作步骤可将一些常用控件保存在一张单独的选项卡上。1)在工具箱的空白处单击右键。2)在弹出的快捷菜单中选择“添加选项卡”。3)在打开的“新选项卡名称”对话框中输入选项卡名称,如ww,如图1-9所示。然后单击“确定”按钮后退出。图1-9输入选项卡名称,4)用鼠标左键将所需的控件“拖”到创建的选项卡ww上,如图1-10所示。5)用同样的方法可以添加多个选项卡,并且通过单击选项卡名称在不同的选项卡之间切换。图1-10添加控件到选项卡,3.工程窗口工程文件就是与该工程有关的所有文件和对象的清单,这些文件和对象自动链接到工程文件上,每次保存工程时,其相关文件信息随之更新。当然,某个工程下的对象和文件也可供其他工程共享使用。在工程的所有对象和文件被汇集在一起并完成编码以后,就可以编译工程,生成可执行文件。“工程窗口”类似于Windows下的资源管理器,在这个窗口中列出了当前工程中的窗体和模块,其结构用树状的层次管理方法显示。如图1-11所示。图1-11工程窗口,3.工程窗口在工程窗口中有“查看代码”、“查看对象”和“切换文件夹”3个按钮。单击“查看代码”按钮可打开“代码编辑器”查看代码,单击“查看对象”按钮可打开“窗体设计器”查看正在设计的窗体,单击“切换文件夹”按钮则可隐藏或显示包含对象文件夹中的个别项目列表。,4.属性窗口“属性”窗口包含选定对象(窗体或控件)的属性列表,在设计程序时可通过修改对象的属性设计其外观和相关数据,这些属性值将是程序运行时各对象属性的初始值。“属性窗口”的内容包括:对象下拉列表框:标识当前选定对象的名称以及所属的类。单击右端的下拉箭头,可列出当前窗体以及所包含的全部对象的名称,可从中选择要更改其属性的对象。,图1-12属性窗口,4.属性窗口属性列表:左列显示所选对象的所有属性名,右列可以查看和修改属性值。有的属性取值具有预定值,如右侧显示“.”式按钮或“下拉箭头”式按钮,都有预定值可供选择。在“属性”列表中双击属性值可以遍历所有选项。选择任一属性并按F1键可得到该属性的帮助信息。属性说明:显示所选属性的简短说明。可通过右键快捷菜单中的“描述”菜单来切换显示或隐藏“属性说明”。,5.窗体设计器“窗体设计器”也称为“对象窗口”,主要用来在窗体上设计应用程序的界面。窗体中的对象(控件)可随意在窗体上移动、改变大小,但锁定控件后则不可随意修改。工程中的每一个窗体都有它自己的窗体设计器窗口。如图1-13左所示。图1-13窗体设计器窗口在窗体的空白区域单击右键,将弹出快捷菜单,可切换到“代码窗口”、“菜单编辑器”、“属性窗口”,还可以选择“锁定控件”和“粘贴”。如图1-13右所示。,6.代码窗口“代码窗口”又称“代码编辑器”,各种通用过程和事件过程代码均在此窗口上编写和修改。双击窗体的任何地方,右键快捷菜单中的“查看代码”,工程窗口中的“查看代码”按钮,或者“视图”菜单中的“代码窗口”4种方法均可打开“代码窗口”。在“代码窗口”中有“对象下拉列表框”、“过程下拉列表框”和“代码区”(图1-14左)。图1-14代码窗口,6.代码窗口在“代码窗口”的左下角有两个按钮:“过程查看”和“全模块查看”按钮。单击“过程查看”按钮,一次只查看一个过程;单击“全模块查看”按钮可查看程序中的所有过程。这两个按钮可切换“代码窗口”的两种查看视图。,7.立即窗口使用立即窗口可以在中断状态下查询对象的值,也可以在设计时查询表达式的值或命令的结果,如图1-17左所示。图1-17中前3行是输入的命令,第4行是输出的结果。还可在程序中使用Debug对象,把运行结果输出到立即窗口,例如程序中有如下代码:Debug.Print现在是&Format(Time,tttttAM/PM)代码的运行结果如图1-17右所示。图1-17使用立即窗口,1.3.4VisualBasic的窗体与控件1.VisualBasic的窗体窗体(Form)也就是平时所说的窗口,它是VB编程中最常见的对象,也是程序设计的基础。各种控件对象必须建立在窗体上,一个窗体对应一个窗体模块。(1)窗体的创建创建新窗体的步骤如下:1)从“工程”菜单中选择“添加窗体”菜单项。2)缺省情况下系统将显示如图1-20左所示的“添加窗体”对话框。,1.3.4VisualBasic的窗体与控件1.VisualBasic的窗体3)该对话框的“新建”选项卡用于创建一个新窗体,列表框中列出了各种新窗体的类型,其中选择“窗体”选项时,建立一个空白的新窗体,选择其他选项时则建立一个预定义了某些功能的窗体。4)单击“打开”按钮,一个新的空白窗体被加入到当前工程中,同时会显示在屏幕上,如图1-20右所示。,图1-20创建新窗体建立新窗体后,它的大小、背景颜色、标题及窗体名称等特征需要根据应用程序的要求在属性设置窗口中设置完成。(2)窗体的属性通过修改窗体的属性可以改变窗体内在或外在的结构特征,控制窗体的外观。常用的窗体属性见表1-3。,表1-3常用的窗体属性另外还有用来设置字形的属性如FontName、FontSize、FontItalic等,设置位置与大小的属性如Top、Left、Height、Width,属于公共的属性。,(3)窗体的事件与窗体有关的事件较多,常用的窗体事件见表1-4。表1-4常用的窗体事件,(4)窗体的方法窗体的方法较多,充分利用这些方法,可以提高程序的开发能力。其常用的方法见表1-5。表1-5常用的窗体方法,2.VisualBasic的控件VB中的控件通常分为三种类型:标准控件:在默认状态下工具箱中显示的控件都是标准控件(或称内部控件),这些控件被“封装”在VB的EXE文件中,不可从工具箱中删除。如命令按钮、单选、复选框等控件。ActiveX控件:这类控件单独保存在.ocx类型的文件中,其中包括各种版本VB提供的控件,如数据绑定网格、数据绑定组合框等和仅在专业版和企业版中提供的控件,如标准公共对话框控件、动画控件和MCI控件等,另外也有许多软件厂商提供的ActiveX控件。可插入的对象:用户可将Excel工作表或PowerPoint幻灯片等作为一个对象添加到工具箱中,编程时可根据需要随时创建。,工具箱中的每个控件都用一个图形按钮来表示,主要包括表1-6列出的20个标准控件。,3.窗体与控件的命名名称是窗体和控件最重要的属性之一,用于在程序中标识窗体和控件。窗体或控件的名称就是其Name属性值,程序运行时不能修改。在缺省的情况下,系统会自动为窗体或控件命名,如Form1、Command1等。当窗体中添置多个同类控件时,系统还会自动为之编号:Command1、Command2、Command3等等。为了能见名知义、提高程序的可读性,给对象起一个容易记忆而又具代表性的名称是十分必要的。为此,Microsoft建议对象的命名规则为:前缀+标识。其中“前缀”由对象类型简称的三个小写字母组成,“标识”是该对象的描述性名称。如关闭程序的命令按钮可以命名为:cmaClose。常用对象命名时所推荐使用的前缀见表1-8。,表1-8对象的命名约定其中n=1,2,3。说明:必须在设计时通过属性窗口为对象设置新的Name(名称)属性值。,1.4VisualBasic编程初步1.4.1VisualBasic可视化编程的步骤VB可视化编程的一般步骤如下:1)设计界面。先建立窗体,再利用控件在窗体上创建各种对象。2)设置属性。设置窗体或控件等对象的属性。3)编写代码。当然,有时也可以在创建对象的同时,一边设置对象的属性,一边编写事件过程代码。,下面通过编写如图1-21左所示的一个简单的VB应用程序来说明可视化编程的方法。1.新建一个工程在VB环境中开发的每个应用程序都被称为工程,新建一个工程有如下两种方法:1)启动VB后,系统显示“新建工程”对话框,在“新建工程”对话框的选项卡选择“标准EXE”,然后单击“打开”按钮。2)在“文件”菜单中选择“新建工程”子菜单,然后在“新建工程”对话框中选择“标准EXE”并单击“打开”按钮。,上述两种方法均可以进入VB的集成开发环境(如图1-7所示),开始设计工程,即应用程序。设计工程直接面对的是窗体,因此主要工作就是在“窗体设计器”中完成窗体的设计。系统默认的窗体只有一个Form1,其窗体名称和标题属性均默认为Form1。根据工程设计需要,还可以添加多个窗体,添加的窗体依次为Form2、Form3。图1-21一个简单的例子,2.界面设计VB应用程序设计的第1步是进行窗体的界面设计,通常是在窗体中添加各种控件。如图1-21右所示,在窗体Form1上添加程序所需的控件,依次分别为标签控件Lable1和命令按钮控件Command1Command2,同类型的控件序号依次自动增加。这时基本完成程序的界面设计,下面开始设计各对象的属性。,3.设置属性对象属性的设置是在属性窗口中进行的,其操作方法如下。1)首先设置窗体Form1的属性。在属性窗口中找到标题属性Caption,将其值改为“第1个例子”,如图1-22左;设置窗体Form1的名称属性Name为frmFirst,如图1-22中所示,此时工程窗口中的窗体名称也随之改变(图1-22右)。窗体的其他属性也可根据程序的需要进行设置。,2)设置控件的属性。单击窗体上的控件,确认选中该控件,然后根据需要逐一设置控件的各属性。选中标签控件“Label1”,将其边框风格属性(BorderStyle)改为:1Fixed。然后用鼠标单击背景颜色属性(BackColor)右边的箭头按钮,从弹出的调色板窗口中选择“白色”(如图1-23左),用鼠标单击字体属性(Font)右边的“”按钮,从弹出字体对话框中设置相应的字体类型、字体样式和字体大小(如图1-23右)。另外将两个命令按钮的标题分别设置为“欢迎(&H)”和“时间(&T)”,其中“&H”使得字母H下方显示下划线,并且成为一个热键:当从键盘上键入Alt+H时,相当于用鼠标单击该命令按钮。,所有对象的属性设置参见表1-9。属性设置后的窗体如图1-24所示。表1-9属性设置图1-24属性设置后的窗体,4.编写代码打开“代码编辑器”,单击“对象”下拉列表框右边的箭头按钮,从中选择Form对象,如图1-25所示。图1-25在“对象”下拉列表框中选择Form窗体在“过程”事件下拉列表框中选择Load事件,在代码窗口中输入下列代码:PrivateSubForm_Load()Label1.Caption=今天是:&Chr(13)&Format(Date,dddddd)EndSub,用同样的方法,输入命令按钮Command1和Command2的单击(Click)事件过程代码:PrivateSubCommand1_Click()Label1.Caption=欢迎使用&Chr(13)&VisualBasicEndSubPrivateSubCommand2_Click()Label1.Caption=现在是北京时间:&Format(Time,ttttt)EndSub,5.运行工程单击工具栏上的“启动”按钮或按F5键,即可运行工程,显示如图1-26左所示。用鼠标单击“欢迎”按钮,显示如图1-21左所示,用鼠标单击“时间”按钮,窗体显示如图1-26右所示。图1-26运行工程单击标题栏上的“关闭”按钮可关闭该窗口结束运行,单击工具栏上的“结束”按钮也可结束程序运行,返回“窗体设计器”窗口。,6.修改工程修改工程包括修改对象的属性和代码,也可以添加新的对象和代码,直到满足工程设计的需要为止。在本例的窗体中,给命令按钮增加图片,使之图文并茂,如图1-27所示。图1-27图文并茂的按钮,修改方法为:选中“欢迎”按钮Command1,修改其风格属性(Style)为1Graphical。用鼠标单击图片属性(Picture)右边的三点按钮,打开“加载图形”对话框。在VB的系统目录中找到图标文件Handshak.ico,如图1-28所示。图1-28“加载图形”对话框同样方法修改“时间”按钮Command2,其中图标文件为:MicrosoftVisualStudioCommonGraphicsIconsMiscClock06.ico,7.保存工程设计好的应用程序在调试正确以后需要保存工程,即以文件的方式保存到磁盘上。一般是先将程序写入磁盘,然后再调试程序;当然,也可先对程序进行调试和运行,再写入磁盘。保存工程的方法为:1)单击“文件”菜单中的“保存工程”或“工程另存为”,如图1-29左所示。2)单击工具栏上的“保存工程”按钮。如果是从未保存过的新建工程,系统则打开“文件另存为”对话框,如图1-29右所示。,在“文件另存为”对话框中,注意保存类型,保存窗体文件(*.frm)到指定文件夹中。窗体文件存盘后系统会弹出“工程另存为”对话框,保存类型为“工程文件(*.vbp)”,默认工程文件名为“工程1.vbp”,保存工程文件到指定文件夹中。如果想保存修改以后磁盘上已有的工程文件,直接单击工具栏上的“保存”按钮,系统不会弹出“另存为”对话框。,8.工程的编译当完成工程的全部文件之后,即可将此工程转换成可执行文件(.exe)编译工程。在VB中对程序(工程)的编译非常简单,在“文件”菜单中选择“生成工程1.exe”(如图1-30左)。在打开的“生成工程”对话框选择程序所保存的文件夹和文件名(如图1-30右),然后单击“确定”按钮即可生成Windows中的应用程序。,1.4.2控件的画法在窗体上添加程序设计所需要的各种控件,是VB可视化程序设计中界面设计的重要内容。将工具箱中的控件添加到窗体中的过程称为“画控件”,下面介绍控件的画法。1.在窗体上画一个控件在窗体上画一个控件有两种方法:第1种方法是用鼠标单击工具箱中的控件按钮,当鼠标指针变成一个十字指针时,再在窗体的工作区按住鼠标左键拖动鼠标,即可在窗体上画出对应控件。第2种方法是双击工具箱中的控件按钮,即可在窗体的中央画出控件。,2.控件的缩放和移动在设计时,“活动”控件的边框上有8个蓝色小方块,通常称为“当前控件”,如图1-31所示。用鼠标单击控件,可以使之成为当前控件。对于选中的控件(即当前控件),可直接使用鼠标拖动控件到需要的地方来调整控件的位置,利用鼠标指针对准控件的选中标志(8个小方块)出现双向箭头时,可以改变控件的大小(即高度和宽度)。除了上述方法外,还可以在属性窗口修改某些属性来改变控件的大小和位置。,3.控件的复制与删除在窗体上,控件的复制和删除操作同Windows环境下文件的操作相同。首先选中控件,单击工具栏上的“复制”按钮,然后单击“粘贴”按钮将控件粘贴到窗体的左上角。由于复制控件名称相同,系统会弹出一个“是否创建控件数组”对话框,如图1-32所示。图1-32是否创建控件数组,3.控件的复制与删除单击“是(Y)”,将在窗体上创建一个控件数组,单击“否(N)”即可在窗体上得到该控件的复制品。复制品的所有属性与原控件相同,只是名称属性(Name)的序号比原控件大。要删除某控件,只需选中控件后按Delete键或单击工具栏上的“删除”按钮。另外,还可以利用右键快捷菜单上的命令对控件作复制、删除等操作。如图1-33所示。,4.控件的布局当窗体上存在多个控件时,需要对窗体上的控件排列、对齐等格式进行操作。这些操作一般可以通过“格式”菜单完成,如图1-34所示。在“对齐”子菜单中,由于没有选定多个控件,所以很多功能处于无效状态。图1-34打开“格式”菜单,4.控件的布局图1-35选定多个控件要调整多个控件之间的位置,需要同时选定多个控件。其选定方法为:在窗体的空白区域利用鼠标左键拉出一个矩形框,将需要选中的控件圈上即可选定多个控件。或者先按下Shift键不放,再用鼠标单击要选中的控件。如图1-35所示。在选定多个控件之后,就可以利用“格式”菜单对窗体上多个控件的格式进行调整。,1.4.3公共的属性与事件过程在VisualBasic所使用的对象(窗体及控件)中,很多属性和事件是共有的,这些共有的属性和事件在不同对象中的功能和用法基本相同。1.公共的属性属于各对象共有的属性有很多,常用的有:Name、Caption、Left、Top、Width、Height、Font、ForeColor、BackColor、Enabled、Visible等。,2.公共的事件过程VisualBasic采用了事件驱动的编程机制,一个程序员,要能灵活自如地编写VisualBasic程序,充分利用好各控件的功能,就必须熟悉和掌握各控件所能响应的事件,以及各种事件所产生的背景和触发条件。根据事件产生的来源,可分为鼠标事件、键盘事件和系统事件3类。鼠标事件是Windows应用程序中触发频率最高的事件。有时也需要用键盘来进行一些辅助性的操作,所以除鼠标事件外,还有键盘事件。由系统自动触发的事件称为系统事件。比如,定时器控件,该控件可在一定的时间间隔内自动产生Timer事件,以实现一些周期性的操作。,键盘事件(KeyDown、KeyUp、KeyPress)与高级鼠标事件(MouseDown、MouseUp、MouseMove)将在第11章中介绍,下面对常用的公共事件作一简单介绍。(1)单击事件(Click)(2)双击事件(DblClick)(3)改变事件(Change)当用户改变控件的内容时,产生Change(改变)事件,事件过程格式:PrivateSub对象名_Change(indexAsInteger)其中index是一个整数,用来唯一地标识在控件数组中的一个控件。此事件如何和何时发生随对象(控件)的不同而不同:,文本框:改变文本框的内容。该事件当用户改变正文或通过代码改变Text属性的设置时发生。组合框:改变组合框控件的文本框部分的正文。该事件仅在Style属性设置为0(下拉组合框)或1(简单组合框)和正文被改变或者通过代码改变了Text属性的设置时才会发生。目录列表框:改变所选择的目录。该事件在双击一个新的目录或通过代码改变Path属性的设置时发生。驱动器列表框:改变所选择的驱动器。该事件当选择一个新的驱动器或通过代码改变Drive属性的设置时发生。,水平和垂直滚动条:移动滚动条的滚动框部分。该事件在进行滚动或通过代码改变Value属性的设置时发生。标签:该事件当通过代码改变Caption属性的设置时发生。图片框:改变图片框的内容。该事件当通过代码改变Picture属性的设置时发生。说明:Change事件过程可协调在各控件间显示的数据或使它们同步。例如,可用一个滚动条的Change事件过程更新一个文本框控件中滚动条的Value属性的设置。或者可以利用Change事件过程在一个工作区里显示数据和公式,在另一个区域里显示结果。,
展开阅读全文