版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《VisualBasic程序设计教程》前言编写本书的目地有两个:一是适应于高校公共计算机的教学,让学生能够通过计算机等级考试,主要内容在前12章。二是适应于提高计算机编程水平的学生,即计算机专业化教学,主要内容在前13-14章。本书主要应用于公共计算机的等级考试教学,也适应于专业计算机的入门教学。公共计算机部分主要是第一章至第十二章,建议至少64课时。专业部分为第十三章至第十四章,建议至少20课时,总共84课时。VB是1991年的产物,从VB1.0,2.0至6.0中文标准版、专业版及企业版、VB.NET,微软在不断地演绎VB的精彩故事。VB程序设计发展至今,其包含的概念、内容越来越多,功能越来越强,要想在短时间内学会它,越来越不容易。为此,按照“厚基础,强能力”的指导思想,在教学内容的选取,教学的组织和方法上,注重高级语言的语法规则、面向对象程序设计基本方法、分析和解决实际问题能力的有机结合,为学习和应用打下基础。本书提供了较多的难度适中的完整范例,有利于模仿学习。为了突出教师授课和学生自学时由浅入深循序渐进的过程,本书内容安排如下:本书共分十四章,第1章至第4章是入门知识,其中包括了VB开发环境的介绍和面向对象程序设计的基本概念。为了使读者理论联系实际,充分体会VB可视化编程的好处,以及照顾到后续章节的学习和上机实践,常用的几种控件和输入输出方法的介绍也放在了这一部分中。第5章至第12章主要介绍VB语言基础,介绍了VB设计用户界面,以及全部的内部控件的详细介绍,讲解了多个实例的编程,能够利用编程工具进行程序的调试和错误处理是程序员的基本素质,也是在学习过程中解决问题的有效途径。第13章至14章介绍了数据库访问及程序改错与调试,作者认为80%以上的应用程序会使用数据库功能,所以篇幅组织得较大,并且有较完整的实例介绍。教师可以根据具体情况在课堂讲授时作一定的剪裁。书中难免不足之处,敬请专家和读者批评指正并赐教。编者2008年10月附本书主编:苏啸副主编:胡艳维编委:刘熹、钟友华、李希勇、刘秋萍
第1章VisualBasic概述VisualBasic(可视化BASIC,简称VB)是微软公司推出的一种新型的现代程序设计语言。VB虽然以BASIC语言为基础,但是在许多方面都做了重大的改进和突破。VB的产生使更多的专业、非专业人员都能够参与到开发Windows应用程序的行列中,计算机程序设计进入了新的阶段。本章介绍计算机程序设计语言及方法的发展概况、VB的特点、启动和退出、集成开发环境和开发VB应用程序的基本步骤。§1.1计算机程序设计语言简介人们在使用计算机解决实际专业问题时,需要用某种特定的“语言”同计算机交流、沟通,计算机语言是人类与计算机交流信息的主要途径。这类语言通过语法、语义、描述记号来表述各种运算和处理过程,能够为计算机所识别、理解、执行,最终完成某项工作任务。这些语言统称为计算机程序设计语言。1.1.1程序设计语言的发展程序设计语言与计算机硬件共同诞生、共同发展,随着计算机及其应用的不断发展,不断完善、变革、创新。目前,程序设计语言的发展可概括为如下四个阶段。1、机器语言机器语言属于第一代程序设计语言。机器语言由0、1二进制代码组成,能被计算机直接识别的机器指令的集合。机器语言能直接针对计算机的硬件结构描述各种算法,因此不需要翻译,能够被计算机直接执行,速度快,但是,用机器语言编程非常繁琐,程序的可读性极差,程序的修改、调试极不方便。机器语言面向机器,不同机器的指令系统不同,不能通用,不便于计算机的推广应用。2、汇编语言汇编语言采用特定的助记符号表示机器语言中的指令和数据,相对机器语言来说,比较容易记忆和学习,所以也称汇编语言为符号语言。它使用便于识别的符号,如英语单词或其缩写作为助记符,来代替机器指令编写程序,然后由专门的转换程序,将这些符号转换为机器语言指令代码。汇编语言也能够针对计算机的硬件去编写程序,执行速度快。目前,针对一些实时性要求较高的实际问题,仍采用汇编语言来编写程序。但是它和机器语言一样,对机器的依赖性强,语言的通用性问题没有得到根本解决。3、高级语言高级语言采用一组通用的英语单词、数学式及规定的符号,按严格的语法规则和逻辑关系表述各种运算和处理过程。由于采用这种表达方式编写程序,接近自然语言和数学语言,符合人们的习惯,为此称之为高级语言。高级语言有较强的通用性,用高级语言编写的程序能够在不同的计算机系统上运行。高级语言的种类有许多,适用于不同的应用领域。世界上出现最早的高级语言是FORTRAN,是用于编制数值计算机程序的主要语言,主要适用于科学计算方面。后来随着C语言的广泛应用,FORTRA语言逐渐被C语言所取代。20世纪60年代以来,出现了很多高级语言,流行过的有BASIC、COBOL、PASCAL、PL/1和ADA。由于C语言既适合系统软件设计,也适合应用软件设计。著名的UNIX操作系统就是用C语言编写的,C语言是目前国际上公认的优秀程序设计语言。4、4GL语言一般被称为“第四代语言”,是一种交互式、非过程化的、面向用户的编程语言,与高级语言相比它更接近人类自然语言。第四代语言经常被用于访问数据库,目前主要用于数据库开发的查询语言,例如,SQL就属于4GL语言。1.1.2程序设计语言的发展趋势计算机网络的飞速发展和广泛应用,对人们的工作和生活产生了极大影响,使当今社会发生极大变革。最先受到影响,对发展起到很大促进作用,当属程序设计语言。Java语言的出现就是明显例子,Java是网络对程序设计语言发展影响最大的事件。概括分析,今后程序设计语言的发展将着重在以下几个方面。1、智能化逐步提高新型计算机语言应该更容易学习、掌握,更便于使用。程序设计语言的发展过程就是一个追求方便、易用的过程。现在的计算机语言已经逐步具有一定的智能化的特点,使软件开发逐步走向更高级的阶段。进一步发展将会使更多的用户,不需要专门、系统培训,就能够很容易地掌握最新程序设计方法,使用计算机的智能化程度将会更高。2、较强的可移植性在不同的计算机或操作系统平台上,程序不需要重新编译即可执行,真正做到“与系统无关”是人们追求的理想目标。Java语言在某些方面上实现了这种功能,程序的通用性很强,受到用户的欢迎。3、适应网络的特性网络编程语言随着Internet普及,将会更快发展并广泛应用。简单易学的Vbscript、JavaScript很适合非专业人员使用。微软最新推出的VisualS中VC.net、VB.net、C#等紧密与Web开发标准结合,将会和Java一样被广泛应用到网络程序的开发。应未来网络需求,将会产生更好的网络编程语言。4、高效与安全性IT的发展过程中,社会对软件需求增长很快,要求软件开发具有较高的时效性和安全性,以及针对性。极大提高现代程序设计语言的要求。1.1.3计算机程序设计方法发展概况随着计算机科学技术及其应用的飞速变化,计算机程序设计语言的发展在不断丰富、完善。与此同时,程序设计方法也不断改进。人们在待续探讨、研究,以使程序设计的方法能够更加系统化,更接近人类自然语言的习惯和思维方式,使软件开发更加科学化。程序设计方法的发展主要经历了以下几个阶段。1、模块化程序设计将一项较大的开发任务分成若干项独立的小任务,分头编写各个模块,然后将这些独立的模块有机地结合起来形成一个整体,实现系统的功能。2、结构化程序设计结构化程序设计是指仅仅使用三种基本控制结构(顺序、选择和重复)实现程序的设计方法。其基本设计原则是:模块化原则、自顶向下原则和逐步求精的原则。在充分分析需求的基础上,实现系统功能。3、面向对象的程序设计该设计更接近人类的思维方式和自然语言习惯,能够直接描述客观对象。发展面向对象方法的目的,是提高软件系统的可重用性、可扩充性和可维护性。与传统面向过程的程序设计方法比较,有两点重大突破:①操作代码与代码运行过程所需要的数据共同封装在一起组成了一种新的数据类型类;并且“类”具有继承及扩充机制。②具有人机交互式的可视化程序设计界面。4、计算机辅助软件工程(Case)计算机辅助软件工程(Case)的目标,就是要实现系统开发过程中各阶段的工作,能够达到基于计算机的自动化的过程。采用辅助软件工具和方法支持开发,将系统按功能进行划分,利用工具对数据建模,能够自动生成计算机程序,完成开发设计任务。Case工具的成熟及使用,还有待一个发展过程。§1.2VB的基本特点VB(简称VB),是在BASIC语言基础上发展而来,具有上手容易,功能强大、效率高的特点。是最受欢迎的Windows应用程序开发语言,它具有以下基本特点。1、可视化的设计平台VB提供可视化设计平台,把Windows界面设计的复杂性“封装”起来,使界面设计如同搭积木游戏一样。只需按设计要求,可轻松地用系统提供的工具在窗口中画出各个对象,并结合布局和功能为其设置相应的属性,VB自动产生程序界面的设计代码。为开发Windows风格的应用程序,提供了简化编程难度的有效方法,大幅度提高了效率。2、事件驱动的编程机制事件驱动是一种适用于图形用户界面的编程方式。当用户在窗口界面上点击或操作一个对象时,该对象就会触发一个事件,且该事件所对应的程序代码就会被执行,从而完成指定的操作任务。3、能够充分利用系统资源动态数据交换(DynamicDataExchange,DDE)是Windows操作系统下应用程序间的一种标准通信方式。VB支持DDE,并可实现和其他支持DDE的应用程序进行动态数据交换或通信。VB支持Windows的对象的链接与嵌入技术(objectLinkandEmbedding,OLE),其他应用程序的对象能够链接或嵌入到VB应用程序中,例如,Word文档、Excel电子表格、图像、声音等,使VB能够充分利用其他应用程序的数据。动态链接库(DynamicLinkLibrary,DLL)是Windows最显著的特点之一,VB支持这项技术。VB程序运行中,需要调用函数库的某个函数时,Windows就可从DLL中读出并运行。例如,可以将用C、C++、汇编语言等编写的程序添加到VB程序中。4、具有较强的数据库管理功能VB提供了开放式数据库连接功能,可以直接访问或通过连接的方式管理并操作后台的大型数据库。能自动生成SQL语句实现数据操作功能、能直接使用ActiveX数据对象(ADO)进行数据库管理。用VB设计应用程序的前台界面,通过ADO连接操作后台数据库,是开发应用系统的常用方法。5、全面支持多媒体技术VB提供了多种功能的多媒体控体,能够让用户在较短的时间内,很快掌握编写图、文、声、像并茂的多媒体应用程序的技能。§1.3VB的安装、启动和退出1.3.1安装VisualBasic1、VB的版本1991年微软公司推出VB1.0之后,其版本在不断更新。1998年微软公司发布开发工具套件:MicrosoftVisualStudio98,其中含VB6.0。VB6.0有三个版本,不同的版本是为不同层次的人员和不同的开发需求设计的,用户可根据情况安装相应的版本。·VB标准版:它是初学者学习VB开发应用程序的学习版本。提供了各种控件和数据库访问的基本功能。·VB专业版:在标准版的功能基础上,提供了更加完整的工具集和各种附加的功能,为专业人员开发客户/服务器应用程序提供条件。·VB企业版:包含专业版的全部功能和特征,适合专业人员开发更高性能的分布式应用程序,能够快速访问Oracle和SQLServer等数据库。2、基本安装过程安装VB6.0和安装其他Windows应用程序的过程类似。将VB6.0的光盘放入光驱后,一般情况下光盘的安装程序会自动启动,进入安装界面。也可通过“我的电脑”或“资源管理器”在光盘上找到安装程序:Setup.exe,运行该程序,进入安装界面。安装VB6.0的基本步骤。(1)运行安装程序后,出现“VB6.0中文企业版安装向导”的对话框。(2)直接单击[下一步]按钮,出现“最终用户许可协议”对话框,选择[接受协议]单选按钮。单击[下一步]按钮,出现“产品和用户ID”对话框。(3)输入正确的产品ID号(购买软件可以获得该序列号)、输入姓名和公司名称(输入的文字没有限制)。然后单击[下一步]按钮,出现“VB6.0中文企业版”对话框。(4)选择[安装VB6.0中文企业版]后,单击[下一步]按钮,出现“VB6.0中文企业版安装程序”对话框。(5)可选择“典型安装”,或者“自定义安装”。如果选择“自定义安装”,会出现对话框,用户在其中选择所需的组件。单击[更改文件夹]按钮,可改变VB的默认安装文件夹。(6)单击[继续]按钮,安装程序将文件复制到硬盘中。安装结束后,需要重新启动计算机。(7)计算机再次启动后,出现“安装MSDN”对话框,如果不需要安装MSDN,则应该取消[安装MSDN]复选框,单击[退出]按钮即可。需要安装MSDN,可按后面的提示进行操作。3、组件的添加和删除如果需要安装VB的新组件,或者删除不需要的组件,要再次运行VB的安装程序。在出现的对话框中,可以选择[添加/删除]、[重新安装]或[全部删除]按钮,再次出现对话框时,根据需要选择相应的选项即可。1.3.2启动和退出VisualBasic1、启动成功安装VB之后,便可以启动VB系统了。运行VB系统的方法有多种,可以采用下列方法之一。·选择[开始]→[程序],选择选择[程序]组中的[MicrosoftVB6.0中文版]程序组,在其中选择[MicrosoftVB6.0中文版]命令,即可启动VB6.0系统。·在桌面上双击[MicrosoftVB6.0中文版]的快捷方式,或者在资源管理器中找到VB6.0安装目录,双击VB6.exe可执行文件,均可运行VB系统。每次启动VB系统时,出现如图1.3-1所示的“新建工程”对话框,该对话框共有3个选项卡,单击[新建]选项卡,可以在其中选择要创建的应用程序的类型,共有13种类型的应用程序,选择其中的某一种应用程序类型后(最常选择的是“标准EXE”),单击[打开]按钮,即可建立一个新的VB工程。单击[现存]选项卡,可以在选定的文件夹中,选择已经存在的工程文件。单击[最新]选项卡,可以在最近使用过的工程中,选择所需要的工程文件。创造或打开工程文件后,即可进入VB的集成开发环境。2、退出退出VB的方法和退出其他Windows应用程序的方法类似,可以选择下列方法之一。·选择[文件]→[退出]命令。·单击应用程序关闭]按钮,或者按Alt+F4键退出当前应用程序。·VB系统在退出前,会自动判断用户在本次操作中是否修改了工程文件的内容,并询问用户是否保存文件,用户确认后可退出VB系统。§1.4VB集成开发环境VB系统为开发应用程序提供了良好的集成开发环境,如图1.4-1所示。它集成了各种不同的功能,例如,界面设计、代码编辑、模块的编译、运行、调试等。该界面由多个窗口构成VB的集成开发环境。开发VB应用程序时,需要这些窗口配合使用。1.4.1主窗口VB系统的主窗口由标题栏、菜单栏和工具栏组成,为用户提供了开发VB应用程序的各种命令和工具。1、标题栏标题栏与Windows其他应用程序相似,另外说明了当前的工程文件名和VB的当前工作模式状态,其中的“[设计]”,表明集成开发环境此时处于设计模式。VB的三种工作模式及其作用如下。(1)设计模式该模式下,用户可以进行程序界面的设计和代码的编写工作。程序运行后出现错误时,对程序代码的编辑过程,也在设计模式中进行。(2)运行模式程序界面和代码的设计完成后,运行应用程序时处于该模式。VB应用程序运行后,一直处于等待事件发生的状态中,退出应用程序,则回到设计模式。运行阶段不能进行界面和代码的编辑工作。(3)中断模式应用程序运行出现错误时,处于中断模式。该阶段可以编辑代码,重新运行程序,但是程序界面不能够被编辑。2、菜单栏菜单栏中包含VB系统所有的可用命令,这是程序开发过程中用于设计、调试、运行和保存应用程序所需要的命令,共有13个菜单项。[文件]:主要提供对工程文件的创建、打开、保存和增删等操作命令。将当前应用程序生成可执行文件的操作命令也在其中。[编辑]:主要提供对应用程序进行编辑的各种操作命令。[视图]:主要提供设计程序界面、运行和调试程序时各种窗口的切换。[工程]:主要提供为工程添加窗体、模块、控制、部件等对象的命令。[格式]:主要提供对窗体控制的对齐、尺寸及间距等格式化的命令。[调试]:主要提供调试程序的各种命令。[运行]:主要提供程序启动、中断和停止等命令。[查询]:主要提供对数据库查询的相关命令。[图表]:主要提供对图表的新建、设置、添加、显示和修改等命令。[工具]:主要提供添加过程、过程属性、菜单编辑器、相关选项的设置及应用程序的发布等命令。[外接程序]:主要提供在VB中进行数据库管理和外接程序管理器的功能。[窗口]:主要提供窗口的排列和过程文件的切换命令。[帮助]:启动帮助系统,打开帮助窗口,为用户提供学习和查询VB的相关信息。控件工具箱窗口设计器属性窗口布局窗口工程窗口工具栏控件工具箱窗口设计器属性窗口布局窗口工程窗口工具栏图1.4-1VB集成开发环境3、工具栏工具栏中集中了各种用图标表示的按钮,每个按钮对应一个命令,单击按钮,即可执行对应的命令。默认情况下,VB启动后显示标准工具栏,除此,VB还提供了编辑、窗口编辑器和调试等专用的工具栏。可以通过选择[视图]→[工具栏]命令将其他工具栏在集成环境中移入或移出。4、控件工具箱控制部件简称控件,是用户设计应用程序界面的工具。VB的标准工具箱中包含建立应用程序所需的各种控件。VB还提供了很多ActiveX控件,可以将它们添加到工具箱中。如果控件工具箱在集成环境中没有出现,可选择[视图]→[工具箱]命令使其再现。标准工具箱中包含了系统自动提供的控件,称为标准控件,如表1.4-2所示。标准控件的功能和使用方法在下章介绍。表1.4-2控件图标样式与控件名称控件图标控件名称控件图标控件名称图片框(PictureBox)垂直滚动条(VscrollBar)标签(Lable)定时器(Timer)文本框(TextBox)驱动器列表框(DriverListBox)框架(Frame)目录列表框(DirListBox)命令按钮(CommandButton)文件列表框()复选框(CheckBox)轮廓(Shape)选项按钮(OptionButton)直线(Line)下拉式列表框(ComboBox)图像框(Image)列表框(ListBox)数据控件(Data)水平滚动条(HscrollBar)OLE容器(OLE)1.4.2工程窗口工程是应用程序各种类型文件的集合,应用程序是建立在工程的基础上完成的,工程文件的扩展名为.Vbp。它包含的三类主要文件为:窗体文件(.Frm)、标准模块文件(.Bas)、类模块文件(.Cls)。工程文件就是与该工程有关的所有文件和对象的清单,这些文件和对象自动链接到工程。每个工程中的对象和文件也可以供其他工程使用。窗口中列出当前工程中的窗体和模块,以层次化管理方式显示各类文件,而且允许同时打开多个工程。在工程资源管理器标题栏的下方有三个按钮,其含义和作用如下:[查看代码]按钮:单击后切换到代码编辑器窗口,查看或编辑代码。[查看对象]按钮:单击后切换到窗体设计器窗口,查看或设计当前窗体。[切换文件夹]按钮:单击后可以在工程中的不同层次之间切换。1.4.3属性窗口在VB集成环境中,属性窗口的默认位置是在工程窗口的下方,如图1.4-3所示。单击工具栏中的属性窗口按钮或按F4键,可以使隐藏起来的属性窗口再次出现。应用程序中的窗体及其控件的属性,均可以通过属性窗口设置,例如,名称、标识、颜色、字体等。属性窗口由以下几部分组成。(1)对象下拉列表框:标识当前对象的名称及其所属的类别,例如,图1.4-3中Forml是名称,Form说明是窗体类。单击其右边的箭头可列出所选窗体中包含的对象列表。(2)选项卡:可按字母序或分类序两种方式,列出所选对象的所有属性。(3)属性列表:该表中列出所选对象的各个属性的默认值,可以在设计模式或运行模式重新设置、修改其属性值。不同的对象,列出的属性也不尽相同。列表左边列出的是各种属性,右边是对应的属性值。(4)属性含义:显示所选取属性的简短文字说明。图1.4-3属性窗口图1.4-4窗体设计器1.4.4窗体设计器“窗体设计器”如图1.4-4所示,是用户设计应用程序界面的窗口,也称为“对象窗口”。其中的窗体是用来开发VB应用程序界面的,用户可以在窗体中放置各种控件,窗体中的控件可随意在窗体上移动、放缩,但控件被锁定后则不可随意修改。窗体是VB应用程序的主要部分,用户通过与窗体上的控件进行交互得到操作结果。每个窗体必须有一个惟一的窗体名称,建立窗体时的默认名称为Form1,Form2,……,用户可以根据需要在工程中建立多个窗体。在窗体的空白处单击右键,在快捷菜单中,选择[查看代码]、[菜单编辑器]或[属性窗口]命令,以便快速切换到其他窗口。如果窗体设计器在集成环境中没有出现,可以选择[视图]→[对象窗口]命令使春再现。1.4.5代码编辑窗口“代码编辑窗口”如图1.4-5所示,是用来对过程或事件过程的代码进行编辑的窗口,也称为“代码窗口”。VB系统为用户提供了较强的代码编辑功能,可以通过多种方式打开代码编辑窗口。事件代码事件名对象名事件代码事件名对象名图1.4-5代码窗口·双击窗体中的任何位置。·单击工程窗口中的[查看代码]按钮。·单击鼠标右键,从快捷菜单中选择[查看代码]命令。·选择[视图]→[代码窗口]命令。1、代码窗口的组成(1)对象下拉列表框列表框位于标题栏下左半部。单击下拉列表按钮,会弹出列表,列表中给出当前窗体及所包含的所有对象名。(2)过程下拉列表框列表框位于标题栏下右半部。单击下拉列表按钮,会弹出列表,列表中给出所选对象的所有事件名称。(3)代码编辑区窗口中的空白区域即为代码编辑区。用户可以在其中编辑程序代码,操作方法与通常文字处理软件类似,而且在VB代码编辑方面提供了一些自动功能。(4)查看视图按钮在代码窗口的左下角,有“过程查看”和“全模块查看”两个按钮,前者用于查看一个过程,后者可以查看程序中的所有过程。2、代码编辑器的自动功能用户在编辑程序代码时可以直接输入语句、函数、对象的属性或方法等内容,也可以利用VB提供的自动功能简化输入过程。(1)自动提示信息当用户输入正确的VB函数后,在当前行的下面会自动显示出该函数的语法格式,当前项为加黑显示,为用户输入提供参考。输入一面后,下一项又变为加黑显示。(2)自动列出成员用户在输入控件名后面的小数点时,VB系统会自动弹出下拉列表框,列表中包含了该控件的所有成员:属性、方法,继续输入成员名的字母,系统会自动显示出相关的属性名和方法名,可以从中选择所需的内容。如果操作中没有出现自动提示信息和自动列出成员的功能,按Ctrl+J键可以使其出现。(3)自动语法检查在输入代码的过程中,每次按回车键时,VB都会自动检查该行语句的语法。如果出现错误,VB会警告提示,同时该语句变为红色。1.4.6立即窗口图1.4-6立即窗口立即窗口是在中断模式状态下用来观察处理结果、调试程序使用的窗口。选择[视图]→[立即窗口]命令,即可打开如图1.4-6所示的立即窗口。可以在立即窗口中直接输入命令,观察结果;也可以在程序中使用Debug对象输出的方式,将结果送到立即窗口。例如,在程序中输入Debug.printdate即可在立即窗口中显示系统日期。§1.5开发VB应用程序的基本步骤用传统的高级语言编写程序,除去要将各种处理功能用语句描述之外,还需要设计用户操作界面,设计得为了在屏幕上画出一个图形,就必须编写一大段程序语句。VB可视化编程改变了这种状况,而采用了面向对象和事件驱动的编程方法。因此用VB开发应用程序,包括两部分工作:设计用户界面和编写程序代码。1.5.1VB示例题目要求和运行效果设计一个程序,界面由三个命令按钮和一个文本框组成,如图1.5-1所示。当用户单击“欢迎”按钮时,在文本框中显示“欢迎学习使用VB”;单击“清除”按钮时,清除文本框的内容;单击“退出”按钮时,退出程序的运行。图1.5-1示例的设计界面表1.5-1示例中的对象属性设置控件名称属性属性值Form1Caption“示例”Text1Text“”Command1Caption“欢迎”Command2Caption“清除”Command3Caption“退出”2、操作步骤(1)新建工程。选择[文件]→[新建工程]命令,在出现的“新建工程”对话框中选择[标准EXE],然后单击[确定]按钮。(2)添加文本框控件。把鼠标指针移到工具箱中的文本框图标abl上,单击鼠标,鼠标指针变形为“+”,然后将鼠标移到窗体合适的位置上,按住鼠标左键做斜线拖动,当控件的尺寸符合需要时,释放鼠标,文本框被添加到窗体中。(3)添加按钮控件。添加按钮与添加文本框的操作相似,区别仅仅是在工具箱中选择的工具不同。连续添加三个按钮控件。(4)设置控件属性。按照表1.5-1设置窗体、文本框和命令按钮的属性。(5)编写代码。在工程窗口单击[查看代码]按钮,在对象列表框中分别选择三个按钮对应的名称,出现三个事件过程的框架,在其中输入相应的代码即可。(6)运行程序。确认代码正确后,单击[运行]按钮。运行后的界面如图1.5-2所示。3、程序代码PrivateSubCommand1_Click()Text1.Text=“欢迎学习使用VB”‘为文本框赋值EndSubPrivateSubCommand2_Click()Text1.Text=“”‘清除值EndSubPrivateSubCommand3_Click()End‘退出程序EndSub图1.5-2示例的运行界面1.5.2基本步骤通过以上程序示例处理过程,可以归纳出开发VB应用程序的基本步骤如下。1、界面设计应用程序界面由窗体和控件两部分组成,用户可以在窗体中放置各种控件,以构成用户所需要的程序界面。在窗体上设计界面时,可以使用前面介绍的鼠标拖动的方法,也可以用鼠标双击工具箱中的控件按钮,这样窗体的中心位置会自动出现相应的控件,然后再将控件移动到合适的位置,调整其尺寸大小。可以使用格式菜单中的命令使控件对齐、调整尺寸、设置间距。为了防止处于理想位置的控件被无意移动,可以选择格式菜单中的锁定控件命令。如果需要对个别控件的位置做微调,按住Ctrl键后,再用方向箭头来调整。2、属性设置在属性窗口和程序示例的过程中,对有关属性设置的基本问题作了介绍。可以在属性窗口中静态设置对象的属性,也可以在程序中对属性进行设置或修改,进行动态设置。例如,示例程序中语句Text1.Text=“欢迎学习使用VB”,就是在程序运行阶段,修改文本框的文本属性。这种动态修改对象属性的方法在VB程序中经常使用。3、编写程序代码VB中,程序代码集中在“过程”内组织编写。过程分为多种,示例中程序代码在事件过程内编写。事件过程中的代码是为响应在一个对象上发生的“事件”所进行的操作。例如,示例中的Command2_Click()事件过程,将对象和单击事件结合起来构成一个事件过程。当单击“清除”按钮的事件发生时,执行了Text1.Text=“”的操作命令,体现了VB事件驱动的机制。4、运行和保存程序可以通过多种方式运行一个VB应用程序。·选择[运行]→[启动]命令。·单击工具栏中的[启动]按钮。·按F5功能键。可以通过多种方式结束正在运行的VB应用程序。·选择[运行]→[结束]命令。·单击工具栏中的[结束]按钮。保存VB应用程序的操作与其他Windows应用程序类似。但是,在VB的一个工程中包含多个不同类型的文件,这些文件需要分别保存。选择[文件]→[保存Form1]命令,即可保存第一个窗体;选择[文件]→[保存工程]命令,即可保存当前工程文件。5、独立运行VB应用程序VB应用程序可以脱离VB的集成环境,直接运行在Windows状态。因此需要对应用程序进行编译,生成.EXE文件。选择[文件]→[生成工程1.EXE]命令,在出现的对话框中,输入可执行文件的名称,单击[确定]按钮,即可生成在Windows中直接运行的文件。在保存该文件的文件夹中双击文件名即可执行,也可以将其快捷方式发送到Windows的桌面上,简化操作过程。1.6小结本章介绍计算机程序设计语言及方法的发展概况、VB的特点、启动和退出、集成开发环境和开发VB应用程序的基本步骤。
第2章对象及其操作§2.1VB的对象2.1.1对象的属性、方法和事件VB不仅是一种模块化非常好的语言,同时也是一种面向对象的可视化开发工具。VB提供了面向对象程序设计的强大功能,不仅提供了大量的控件对象,而且还提供了创建自定义对象的方法和工具。1、对象的概念对象在现实生活中很常见。比如,一个人是一个对象,一台计算机是一个对象,一辆汽车也是一个对象,对象是具有某些特性的具体事物的抽象。每一个对象包含了许多属性,例如,一辆汽车包含了外壳、车轮、发动机…等等属性。一个对象中可包含多个对象,例如,汽车是一个对象,车轮是汽车中的一部分,车轮也是一个对象,它包含了外胎、内胎…等等属性。2、VB中的对象Windows应用程序中,窗体和控件是基本的用户接口元素,VB中这些元素称为对象,每个对象都有自己的属性、方法,并且可以响应外部事件。VB中所有的控件都在工具箱中(由VB系统提供)。通过这些现有控件,程序员可方便地编写出标准Windows应用程序。该编写程序过程类似于搭积木,把这些现有的控件在窗体中拼装起来,然后为它们定制相应属性值,并为每个控件所响应的事件编制响应过程,就完成了程序的编写。这样看来VB编程比较容易。3、对象的属性对象的属性是标识一个对象的所有特征,实际是对象所属类的成员变量。对象的属性属于对象的数据部分,例如控件的颜色、大小、字体都是对象的属性。大多数对象属性在对象生成时自动设置,也可以在设计时通过属性窗口或运行时通过代码改变属性。VB对窗体中新创建的每个控件对象都会赋予缺省属性。例如,缺省的Name属性就是控件的名称再加上一个序号。控件对象的属性中,有些属性只能在设计中设置,有些属性只能在运行时设置。例如,列表框的Text属性,这个属性返回当前列表框中所选项目的内容。设计时设置没有意义,因为运行时这个值经常改变,运行时使用才有价值。但文本框的Multiline属性必须在设计时设置。这个属性是设置文本框中的文本是否显示多行文本,在运行时设置没有用。属性分为只读属性和可读写属性。只读属性在运行时使用,如列表框中的ListCount属性,它就是只读属性,在运行时只能读取列表中的项目数,而不能设置。下面列出了常用的公共属性:Name:用于设置控件的名称,这个名称用来标识该控件,可用它来引用该对象。例如,按钮的Name名称属性为Command1,则程序中可用“Command1”Alignment:设置控件文字的对齐方式。有三种值,值为0时文字左对齐,值为1时文字右对齐,值为2时文字居中对齐。Appearance:设置控件外观样式,为0表示平面外观,为1表示三维外观。默认控件外观是三维外观。BackColor:设置控件显示文字或绘制图形的背景颜色。Borderstyle:设置控件边界样式。对于窗体来说,值为0表示无边界,为3表示固定对话框、为4表示固定工具窗口,为5表示可变工具窗口。ForeColor:设置控件显示文字或图形的前景颜色。Font:设置控件中文字的所用字体样式,字号和特殊显示方式。Caption:设置控件显示标题。Text:设置可接受输入的控件中输入或显示的字符串。如文本框控件中输入的文本。Width:设置控件宽度。可在窗体设计器中用鼠标可视化设置控件的宽度,这时该属性会反映出当前控件的宽度。但要精确设置控件尺寸时,可直接设置控件的宽度。缺省单位是Twips,就是将每一个点的1/20,每英寸有1440Twips。Height:同Width类似,设置控件高度。Left:设置控件左上角横坐标。坐标原点为平面的左上角。用户可用布局设计器设置窗体的位置,窗体中控件可用鼠标直接拖动。如要精确控制控件的位置,可在属性窗中设置横坐标位置。Top:同Left类似,用于设置控件的纵坐标。Index:当使用控件数组时,表示控件组中的编号。Enable:设置控件是否可用。当这个属性值为False,控件变灰,不能获得焦点,也不会响应任何事件。Visible:设置控件是否可见,如果设置为False,则控件在窗口中不会显现。TabIndex:设置窗体中控件用Tab键获得焦点的顺序。TabStop:设置是否能够使用Tab键来将焦点从一个对象移动到另一个对象。HelpContextID;用来设置一个控件对象的上下文帮助文件的编号。4、对象的方法对象的方法是指对象内含的可以进行的操作。例如一个窗体对象,可使用它的Clear方法清除窗体中文字或图形,利用Hide方法和Show方法控制窗体的隐藏和显示。对象的方法实际是在对象的类中定义的成员函数。VB中,所有控件方法都是有一定含义的动词,通过这个动词就可以了解控件方法的含义。在调用方法时采用和引用控件方法一样的点(.)操作符引用,如果有参数,在方法后加上参数值,参数中间用空格隔开。格式如:ListBox1.Additem“中国”‘在列表框中加入第一项,名为“中国”ListBox1.Additem“法国”‘在列表框中加入第二项,名为“法国”下面列出了控件所有的常用方法:Clear:清除控件中的内容。如果对象是列表框,Clear方法会删除列表框中所有项目,如果是剪贴板则清除剪贴板中的内容。Drag:用于控件开始、结束或取消拖动操作。只有当对象的DragMode属性设置为手工时,才需要使用Drag方法控制拖放操作。也可以对DragMode属性设置为自动的对象使用Drag。当参数为0时表示取消移动操作,当其参数为1时表示开始移动操作,当参数为3时表示结束移动操作。Move:用于移动控件并且改变控件的尺寸。该方法的语法格式为:Object.Moveleft,top,width,height其中只有left参数是必须的。但是,要指定任何其他的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定left和top参数,则无法指定width参数。任何没有指定的尾部的参数则保持不变。OLEDrag:用于开始一个部件的OLE拖动操作。Refresh:用于一个窗体或控件重新刷新。Setfocus:用于将焦点移动到指定的窗体或控件。但是该控件的Enabled属性TabStop属性必须设置为True。ShowWhatThis:用于显示WindowsHelp所提供的“这是什么”弹出式帮助窗口,帮助的内容是在HelpContextID属性所设置的帮助文件。Zorder:用于设置窗体和控件的图层位置,在设计时可以通过“格式”菜单中的“顺序 ”子菜单利用“置前”和“置后”命令设置控件的图层位置。5、对象响应的事件控件所响应的事件就是它所能够识别的外部变化,是它产生动作的通道,事件从属于控件对象。当外部条件发生变化或用户对控件进行操作时,如该控件能够识别这种变化,就会调用相应的事件过程。编写事件响应代码在代码编辑器中进行,如图2.1-1所示。在代码编辑器的右边有一个事件列表,这个事件列表从属于左边的控件对象,当左边控件列表中的控件改变后,右边的事件列表也会发生变化。图2.1-1代码窗口中Form对象的事件列表图2.1-1中Form_load()过程就是响应窗体载入时所调用的过程。响应事件的过程名构成一般由发生事件的控件名和发生的事件名组合而成。控件所响应的事件可分为:鼠标事件、键盘事件和焦点事件等。鼠标事件是VB编程中最常见的事件,大多数控件都可响应鼠标操作事件,编写鼠标操作响应事件是程序员编写VB程序的很重要部分。2.1.2对象属性设置、对象变量的声明和引用1、对象属性值的设置设置对象属性值的语法形式如下:perty=exproession参数:object:对象的名称,property:属性的名称,expression:赋值的表达式。2、对象变量的声明和引用对象变量和其他变量一样,可以被声明和引用。对象变量的声明可分带New关键字和不带New关键字两种形式:·使用New关键字的语法形式:{Dim|static|private|public}objectvatnameasnewclassname·不使用New关键字的语法形式:{Dim|static|private|public}objectvatnameasclassname或{Dim|static|private|public}objectvatnameasobject例如,在窗体代码的通用部分,可以用下面的语句为窗体声明一个副本:Dimvarformasnewform1为窗体加一个命令按钮,并编写如下代码:Privatesubcommand1_click()varform.Visible=trueEndsub则运行时,每按一下命令按钮,就会生成一个新的窗体。2.1.3对象数组像声明和使用其他数据类型数组那样,也可以声明和使用对象类型数组。对象数组的成员是对象,它既可以是固定大小的,也可以是动态的。例2.1-1窗体变量数组范例⑴首先建立“标准EXE”工程。图2.1-2窗体变量数组设计界面⑵在窗体上加上一个命令按钮Command1,并在窗体的【通用】代码部分声明窗体变量数组。在Command1的Click事件中加入显示语句。程序代码见图2.1-3。⑶调试运行。当按下按钮时,屏幕上会出现6个窗体。图2.1-3完整程序代码2.1.4对象集合和集合对象对象集合是由一组对象组成的集合,它为跟踪对象提供了一个非常有效的方法。对象集合与对象数组不同,当增加或减少对象集合中的对象成员时,它的大小并不改变。并且,集合本身也是一个对象——集合对象(Collection对象),可以使用Dim、New关键字创建集合对象,形式如下:DimSetNameAsNewCollection集合对象有自己的属性和方法。其中有几个非常有用的属性和方法,可以对集合进行计数、插入和删除等操作。·Count属性:返回集合中对象的数目,该属性是只读属性。·Add方法:用于给集合添加新的对象。·Remove方法:从集合对象中删除一个成员。·Item方法:以位置或索引键返回一个集合对象的特定成员。对象集合中的对象作为集合的成员被引用。集合中的每个成员从0开始顺次编号,这就是成员的索引号。例如,在窗体有一个控件集合Controls,其中包含其所在窗体上的所有控件,此控件集合只能在运行时调用。如果对集合中的所有对象都必须执行相同操作,则可用集合简化代码。例如,可在窗体加上ListBox控件List1,并用下列代码遍历控件集合,将各个控件的名字加在列表框中。DimMyControlasControlForEachMyControlInForm1.Controls把每个控件的名字送到列表框2.1.5Screen对象和Printer对象VB中的Screen对象是指整个Windows桌面。Screen对象根据窗体在屏幕上的布局而操作窗体,并在运行时控制应用程序窗体之外的鼠标指针。当模式窗体被显示时,使用Screen对象可以设置Screen对象的MousePoniter属性为沙漏指针(hourglasspointer)。Screen对象通过关键字Screen访问。Printer对象是实现与系统打印机通信(最初是缺省系统打印机)的接口对象。Printer代表的是当前缺省打印机(又称默认打印机)。§2.2窗体2.2.1窗体的创建每次新建一个“标准EXE”工程,系统都会自动生成一个名称为Form1的窗口,这是VB的第一个窗体。窗体实际上是一个对象,称为窗体对象,是VB应用程序的基本组成部分,也是编程中最常见的对象,是控件的容器。一个窗体对应一个窗本模块,窗体模块的扩展名是.FRM,是一个标准的模块文件。窗体有自己的属性、事件和方法,可以用这些属性、事件和方法来控制窗体的外观和行为。图2.2-1添加窗体对话框如果要为工程创建一个新的窗体,可以在系统的“工程”菜单中选择“添加窗体(F)”命令,则会出现一个如图2.2-1所示的“添加窗体”对话框。在弹出的对话框中,单击“打开(O)”按钮后,则会为工程添加一个新的窗体并自动为新窗体设置一个新的名称。窗体创建完成后,便可以在其上增加并设置控件,也可以在运行时对建立的窗体进行操作。如果创建了多个窗体,在程序启动时,虽然载入了所有的窗体,但只是显示第一个窗体(默认的启动窗体)。如果要显示其他窗体,必须使用显示命令(Show)。如果要让别的窗体成为启动窗体,可在系统“工程”菜单中“工程属性”对话框中的“通用”选项卡中选择启动对象,如图2.2-2所示。这样,选定的对象便成了启动对象。图2.2-2选择启动对象2.2.2窗体的属性、方法和常用事件1、属性、方法和事件的基本概念窗体同VB的其他对象一样,都有属性、方法和事件。VB的窗体、控件等各类对象都具有各自的属性、方法和事件。属性是一个对象的特征,方法是对象的动作,事件则是对象对特定消息的响应。各种不同的对象,既有相同的属性,又有各自特有的属性,而且各种属性又有只读的非只读之分。大多数属性在设计时与运行时都可修改,而有些却只能在设计时修改。对于可见控件,一般具有大小、位置、字体、颜色、可见性等属性。对于单个控件,Index属性无效,而对于控件数组,Index属性是可修改的整数。对于控件数组中所有对象,都必须有一个名称(Name)属性,用来标识对象,但这个名称属性只能在设计时修改。例如,窗体中的“(名称)”属性便是窗体的标识名,对当前窗体的任何窗体引用都必须使用这个属性。如果这个属性可以获得其值,则称为“可读”。如果可以设置其值,则称为“可写”。方法既可认为是对象的动作,也可认为是对对象的操作。可以通过“方法”这个方式,获取对象的信息,也可使对象发生某一动作,从而使对象达到设计的效果和目的。有许多方法为各类对象所共有,也有些是特有。对象接收到一个特定的消息后便会对它做出响应,这在VB中称为事件。当一个事件发生时,会激活与此事件相对应的事件过程,如果没有为此事件编写过程,则VB只是在内部进行处理。如果为此事件编写了处理过程,则VB会运行该过程。事件过程是编程的核心,事件则是编写的程序与系统的接口,这称为VB的“事件驱动模式”。2、窗体的属性窗体的属性有多种,这些属性共同构成了窗体的结构。通过对属性的设置,可以控制窗体的外观。窗体属性的访问以窗体的名称加上属性的名称来描述。其语法形式如下:[FrmName.]PropertyName[=Value]其中,FrmName是窗体名。PropertyName是属性名,如果是返回属性,则不使用[=Value]选项;如果要设置属性值,则必须给出要设置的属性值,即Value的值。如果是当前窗体,FrmName可省略,也可用Me关键字代替。VB中提供了一个Me关键字,是一个隐含声明的变量,适用于类模块中的每个过程,相当于对类模块的引用。当过程变量与模块变量的名称相同时,可用此关键字引用模块变量,不必考虑模块名称的变化。窗体属性可分为外观、位置、行为、字体和其他等几类。外观类属性决定窗体的外观形态,主要有Caption、Appearance、BackColor、BorderStyle、FontTransparent、Picture等属性。窗体位置类属性决定窗体大小、位置等特性,主要有Top、Left、Width、Height、Moveable等属性。行为类属性控制窗体的行为操作,主要有AutoRedraw、Enabled、Visible、等属性。字体类是Font属性,控制窗体字体特性。下面是窗体常用的属性:(1)、Caption属性用来确定显示在Form对象标题栏中的文本。当窗体为最小化时,该文本被显示在窗体图标的下面。(2)、Appearance属性窗体上控件的绘图风格。设计时可以进行设置,运行时只能读取。此属性只有0和1两种值。属性为0(Flat)时,表示平面绘制控件和没有可视化效果的窗体,为1(3D)时,表示带有三维效果的绘制控件。(3)、名称(Name)属性决定对象的引用。编写VB代码时,与对象相关的代码都是基于对象名称,即代码中用对象的名称来表示其本身。为便于阅读和理解代码,可在创建对象后为其设置一个具有实际意义的名称属性。此名称属性只能在设计时更改,运行时不能改变。窗体的名称属性就是窗体对象的名称,VB把“名称”当作一个属性来看待,提供一个命名窗体的方式。对象名称遵循一种命名约定:对象名必须以字母开关,窗体名中可包含数字和下划线(_),但不能包含标点符号或空格(虽然VB6.0的中文版中可使用中文名称,但是按照一般编程规律,不使用中文名称。)(4)、BackColor属性用来返回或设置对象的背景颜色。其属性值是VB颜色值,可使用Windows环境的红-绿-蓝(RGB)颜色方案(标准RGB颜色),也可用系统缺省颜色。·RGB颜色方案RGB颜色方案是Windows通过以三原色(R、G、B)不同的量值组合而形成的一个颜色体系。标准RGB颜色的有效取值范围是0~16777215(&HFFFFFF)。该范围内数的高字节为0,较低的3个字节,从最低字节到最高字节依次决定红、绿和蓝的量。红绿和蓝的成分,分别由一个介于0~225(&HFF)之间的数来表示。如果最高字节不为0,VB将使用系统颜色,这些颜色由用户的控制面板设置值和对象浏览器中的“VB对象库”所列出的常数来确定。在设计时的缺省设置值是由常数vbWindowBackground定义的系统缺省颜色。(5)、ForeColor属性用来返回或设置在对象里显示图片和文本的前景颜色,其颜色的设置与BackColor属性的设置方法一样。在设计时的缺省设置值是由常数vbWindowText定义的系统缺省颜色。(6)、FontTransparent属性用来返回或设置一个逻辑值,该值决定是否将Form的背景文本和图形显示在字符周围的空区。当值是True(缺省值)时,允许背景图形和文本以某种字体在字符的周围空区显示出来;是False时,则屏蔽在字体字符周围已有的背景图形和文本。(7)、BorderStyle属性用来返回或设置对象的边框样式。Form对象和Textbox控件中BorderStyle属性在运行时只读。此属性的取值见表2.2-1窗体的BorderStyle属性设置值。表2.2-1窗体的BorderStyle属性设置值常数设置值描述vbBSNone0无(没有边框或与边框相关的元素)vbFixedSingle1固定单边框。可以包含控制菜单杠、标题栏、“最大化”按钮和“最小化”按钮。只有使用“最大化”和“最小化”按钮才能改变大小。vbSizable2(缺省值)可高速的边框。可以使用设置值1列出的全体可选边框元素重新改变尺寸vbFixedDouble3固定对话框。可以包含控制菜单框和标题栏,不能包含“最大化”和“最小化”按钮,不能改变尺寸vbFixedToolWindow4固定工具窗口。不能改变尺寸。显示关闭按钮并用缩小的字体显示标题栏。窗体在Windows9x的任务条中不显示vbSizableToolWindow5可变尺寸工具窗口。可变大小,显示关闭按钮并用缩小的字体显示标题栏。窗体在Windows9x的任务条中不显示(8)、Picture属性用来返回或设置控件中要显示的图片。缺省值是(None),表示无图片。设计时可以通过点击属性框的方式加载一个图片,图片加载后,应在工程目录下生成一个文件存储图片信息,生成可执行的EXE文件,这个信息文件中的数据将会包括在可执行文件中。运行时,不能直接将图片文件赋给该属性,必须通过使用加载图片的函数LoadPicture来设置。语法形式如下:FrmName.Picture=LoadPicture(PicFile)‘其中,PicFile是图片文件的文件名。例如:Form1.Picture=LoadPicture(“c:\windows\sss.bmp”)‘载入图片Form1.Picture=LoadPicture()’清除图片(9)、Font属性决定窗体上使用的字体,但不影响标题栏上的字体。此属性的设置通过Font对象中的相应属性来实现。例如,为了使窗体FrmForml中的字体呈“粗体”,可如下描述:FrmForm1.Font.Bold=True(10)、Top属性用来返回或设置一个Single数据,它以缇为单位表示该窗口上边缘在屏幕中的位置。可用此属性获得窗体的上边缘位置,也可通过修改此属性来移动窗体的位置。缇是英语twip的间译字,是屏幕的一种量度单位,等于1/20磅。缇是独立于屏幕的单位,可确保在所有显示系统中,屏幕应用程序中的屏幕元素的位置和比例都相同。逻辑上1英寸约为1440缇,1厘米为567缇(显示时,屏幕项目的长度用英寸或厘米测量)。(11)、Left属性用来返回或设置一个Single数据,它以缇为单位指出该窗口左边缘在屏幕中的位置,可读写。可以用Left属性和Top属性共同表示在屏幕上窗体的左上角的坐标。当其值发生改变时,窗体的位置会改变。(12)、Width属性用来返回或设置一个Single数据,它以缇为单位表示该窗口的宽度。此属性可读/写。(13)、Height属性用来返回或设置一个Single数据,其内容是以缇为单位的窗口的高度。属性可读/写。通过改变Height属性和Width属性可以改变窗体的大小。(14)、Moveable属性该值指定窗体的可移动性,一个Boolean值。当其值是True时,可以使用鼠标拖动窗体,使之移动和改变大小;当其值是False时,便不能拖动窗体。无论Moveable属性是何值,都可以通过设置Top、Left、Height、Width的属性值来改变窗体的大小。(15)、StartUpPosition属性表示窗体首次出现时的位置,只能在设计时修改,在运行时只能读取该属性。其值只能是表2.2-2中的4个设置值中的一个。表2.2-2StartUpPosition属性的设置值常数值描述vbStartUpManual0手动vbStartUpOwner1所有者中心vbStartUpScreen2屏幕中心vbStartUpWindowsDefault3窗口缺省当StartUpPosition属性设置为vbStartUpOwner或vbStartUpScreen时,窗体中设置的Left属性和Top属性无效。(16)、AutoRedraw属性用于返回或设置图形的绘制方法,即是否“保存”输出的图形,是一个Boolean值。当值是True时,窗体的自动重绘有效,图形和文本输出到屏幕,并存储图像在内存中。该对象不接受绘制事件,必要时,用存储在内存中的图像进行重绘。当值是False(缺省值)时,窗体的自动重绘无效,且将图形或文本只写到屏幕上。当需要重画该对象时,VB会激活对象绘制事件。(17)、Enabled属性用来返回或设置窗体事件的反应状态,是一个Boolean值。其值是True(缺省),则允许对事件作出反应;否则阻止对事件作出反应,即使窗体无效。当窗口呈无效状态时,不响应Click等事件,而且其系统按钮呈无效状态,只能通过关闭应用程序才能关闭窗体。(18)、Visible属性用来返回或设置窗体是否可见,是Boolean值。属性是True,则窗体可见,如果是False,则窗体不可见。要在启动时隐藏一个对象,在设计时可将Visible属性设置为False。在代码中设置该属性,能够实现在运行时隐藏然后又重新显示控件以响应某特别事件。(19)、ControlBox属性用来返回或设置在运行时是否显示系统控制菜单框,此属性在运行时为只读。如果其值True(缺省值)则显示控制菜单框,是False则删除控制菜单框。为了显示控制菜单框,可将窗体的BorderStyle属性值设置为1(固定单边框)、2(可变尺寸)或3(固定对话框)。(20)、Icon属性表示在运行时窗体处于最小化时显示的图标。在设计时,可以通过“选择属性值”的方式为应用程序加载一个图标。(21)、MaxButton属性是一个Boolean值,标识窗体是否具有“最大化”按钮。此属性只能在设计时设置,在运行时只读。如果其值是True(缺省值),则窗体具有“最大化”按钮。如果是False,则窗体没有“最大化”按钮。利用“最大化”按钮可以将窗体窗口扩大为全屏幕。要显示“最大化”按钮,必须将BorderStyle属性设置为1(固定单边框)、2(可变尺寸)或3(固定双边框)。窗口最大化后,“最大化”按钮自动地变成“恢复”铵钮,将窗口最小化或恢复窗口把“恢复”按钮变回最大化按钮。(22)、MinButton属性是一个Boolean值,标识窗体是否有“最小化”按钮。此属性只能在设计时设置,在运行时是只读的。如果其值是True(缺省值),则窗体具有“最小化”按钮;是False,则窗体没有:最小化:按钮。“最小化”按钮能够将窗体窗口最小化为图标。要显示“最小化”按钮,必须将BorderStyle属性设置为1(固定单边)、2(可变尺寸)或3(固定双边框)。(23)、ShowlnTaskbar属性用来返回或设置窗体是否出现在Windows任务栏中。该值在运行时只读。如果其值是True(缺省值),则窗体的标记出现在任务栏中;如果是False,则不出现。(24)、WindowState属性是一个整数值,用来标识在运行时窗体窗口的可视状态。WindowState属性值是常数值vbNormal(0)、VbMinimized(1)、VbMaximized(2)三个中的之一,分别表示窗体窗口的状态是正常(缺省值)、最小化(最小化为一个图标)、最大化(扩大到最大尺寸)。(25)、ScaleMode属性指示对象坐标的度量单位,在窗体属性中属于“缩放”类。其值可参见表2.2-3表2.2-3ScaleMode属性的设置值常数设置值描述VbUser0指出ScaleHeight、ScaleWidth、ScaleLeft和ScaleTop属性中的一个或多个被设置为自定义的值VbTwips1缇(缺省值)(每逻辑英寸为1440缇,每逻辑厘米为567缇)VbPoints2磅(每逻辑英寸为72磅)VbPixels3像素(监视器或打印机分辨率的最小单位)VbCharacters4字符(水平每个单位=120缇,垂直每个单位=240缇)VbInches5英寸VbMillimeters6毫米VbCentimeters7厘米VbHimetric8HiMetricVbContainerPosition9控件容器使用的单位,决定控件的位置VbContainerSize10控件容器使用的单位,决定控件的大小通过对ScaleMode属性与相关的ScaleHeight、ScaleWidth、ScaleLeft和ScaleTop属性的设置,可以建立起一个带有正、负坐标的自定义坐标系统。这4个Scale属性与ScaleMode属性按下面的方式进行交互作用:·把其他任何Scale属性设置为任何值都将导致ScaleMode自动地设置为0(用户定义)。·把ScaleMode属性设置为一个大于0的数,将使ScaleHeight和ScaleWidth的度量单位发生改变,并将ScaleLeft和ScaleTop设置为0。CurrentX和CurrentY的设置值同时会发生改变以反映当前点的新坐标。3、窗体的方法窗体的方法是对窗体的操作,其语法形式一般为:[FrmObject.]MethodName[argumentlist]其中,FrmOject是窗体对象的名称,如果是当前窗体,则可省略其名称或可用关键字Me代替。MethodName是方法的名称,argumentlist是方法的参数列表。下面是窗体的一些常用方法。(1)、Move方法Move方法用来移动窗体,不支持命名参数。语法形式如下:Moveleft[﹐top[﹐width[﹐height]]]其中,left是单精度值,表示移动的目标位置的左边的水平坐标(x-轴)。Top是单精度值,表示要移动到的顶边的垂直坐标(y-轴)。Width是单精度值,表示新的宽度。Height是单精度值,表示新的高度。对窗体和控件,坐标系统总是用缇。移动屏幕上的窗体总是相对于左上角的原点(0,0)。坐标系统或度量单位在设计时用ScaleMode属性进行设置,在运行时使用Scale方法可以更改该坐标系统。(2)、Scale方法用来定义窗体的坐标系统,不支持命名参数。语法形式如下:Scale(x1,y1)-(x2,y2)其中,(x1,y1)是可选的均为单精度值,表示定义左上角的水平(x-轴)坐标和垂直(y-轴)坐标。这些值必须用括号括起,如果省略,则第二组坐标也必须省略。x2,y2也是可选的,均为单精度值,表示定义右下角的水平坐标和垂直坐标。这些值必须用括号括起,如果省略,则第一组坐标也必须省略。Scale方法使能够将坐标系统设置到所选择的任意刻度。Scale对运行时的图形语句以及控件位置的坐标系统都有影响。如果使用不带参数的Scale(两组坐标都省略),坐标系统将重置为缇。(3)、Cls方法用来清除运行时所生成的图形和文本。其语法形式如下:ClsCls只是清除运行时所产生的文本和图形,设计时使用Picture属性设置的背景位图和放置的控件不受Cls影响。如果激活Cls之前AutoRedraw属性设置为False,调用时该属性设置为True,则放置在Form或PictureBox中的图形和文本也不受影响。调用Cls之后,窗体CurrentX和CurrentY属性复位为0。(4)、Hide方法用来隐藏窗体,但不能使其卸载。其语法形式如下:Hide隐藏窗体时窗体将从屏幕上删除,其Visible属性将设置为False,用户将无法访问隐藏窗体上的控件,但是对于运行中的VB应用程序,或对于通过DDE与该应用程序通信的进程及对于Timer控件的事件,隐藏窗体的控件仍然可用。窗体被隐藏时,用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能够与该应用程序交互。(5)、Show方法用来显示窗体。语法形式如下:[style]﹐[ownerform]其中,参数style是个可选取的整数,用来决定窗体的模式。如果style为0,则窗体是无模式的。如果style为1,则窗体是模式的。参数ownerform是可选的字符串表达式,指出部件所属的窗体被显示。对于标准VB窗体,使用关键字Me。如果调用Show方法时指定的窗体没有装载,VB将自动装载该窗体。(6)、Print方法用来在窗口中显示文本。其语法形式如下:Print[outputlist]其中,outputlist是可选的,是要打印的表达式或表达式的列表。如果省略,则打印一个空白行。Outputlist参数的语法和组成部分如下:{Spc(n)|Tab(n)}expressioncharpos其中,Spc(n)是可选的,用来在输出中插入空白字符,这里,n为要插入的空白字符数。Tab(n)也是可选的,用来将插入点定位在约对列号上,这里,n为列号。使用无参数的Tab(n)会将插入点定位在下一个打印区的起始位置。Exprission也是可选的,是要打印的数值表达式或字符串表达式(可以用空白或分号来分隔多个表达式)。可选的charpos指定下Tab(n)将插入点定位在绝对列号上。使用无参数的Tab将插入点定位在下一个打印区的起始位置。如果省略charpos,则在下一行打印下一字符。(7)、SetFocus方法SetFocus方法的作用是将焦点移至指定的窗体,即激活窗体。其语法形式如下:窗体名.SetFocus焦点不能移到不可见(隐藏)的窗体或控件中,也不能把焦点移到Enabled属性被设置为False的窗体或控件中。(8)、Refresh方法Refresh方法可强制全部重绘一个窗体,可用于对窗体的刷新。4、窗体的事件窗体的事件过程,提供了对窗体编程的接口。可以通过窗体的事件过程完成对窗体的操作。在编程时,从代码编辑窗口中选定窗体对象和相应事件名称后,系统会自动在代码编辑窗口中添加一个事件过程,并将光标移动到该过程内(如果已经有该事件过程,光标直接移动到该过程内,不再添加新事件过程)。生成的事件过程形式如下:PrivateSubForm_EvintName([argumentlist])…EndSub其中,EventName是事件的名称,对于不同的事件,将生成不同的过程。有的事件过程有参数,而有的事件过程没有参数。窗体的有些事件可能激发其他事件,也可以在事件过程中调用其他事件。下面是几个常用的窗体事件:(1)、Load事件当一个窗体被装载或使用Load语句启动程序或引用未装载的窗体属性或控件时,就会触发并调用Load事件。语法:PrivateSubForm_Load()PrivateSubMDIForm_Load()通常,Load事件过程用来包含一个窗体的启动代码。多用于指定控件缺省设置值、指明装入ComboBox或ListBox控件的内容,以及初始化窗体级变量等。Load事件在Initialize事件之后发生。例2.2-1为下拉框加入下拉数据,在Form_Load()事件中为空的ComboBox控件中装入数据项。代码如下,结果如图2.2-3所示图2.2-3下拉框中数据项PrivateSubForm_Load()Combo1.AddItem"北京"'向列表中添加项。Combo1.AddItem"上海"Combo1.AddItem"南京"Combo1.AddItem"广州"Combo1.ListIndex=2'设置缺省选择。EndSub(2)、Paint事件在一个对象被移动或大小变化之后,或在一个覆盖该对象的窗体被移开之后,该对象部分或全部暴露时,发生Paint事件。语法:PrivateSubForm_Paint()PrivateSubobject_Paint([indexAsInteger])表2.2-4Paint事件语法参数描述部分描述object一个对象表达式,其值是“应用于”列表中的一个对象index一个整数,用来唯一地标识一个在控件数组中的控件如果需要代码中各种图形方法的输出,则Paint事件过程就很有用。使用Paint过程,可以确保这样的输出在必要时能被重绘。使用Refresh方法时,Paint事件即被调用。如果AutoRedraw属性被设置为True,重新绘图会自动进行,于是就不需要Paint事件。如果ClipControls属性被设置为False,在Paint事件过程中的绘图方法仅影响该窗体中新暴露的区域。否则,绘图方法将在该窗体未被控件覆盖的所有区域(Image、Label、Line和Shape控件除外)。在Resize事件过程中使用Refresh方法可在每次调整窗体大小时强制对整个对象进行。注意:对某些任务使用Paint事件过程能导致一个层叠事件。在下列情况下要避免使用Paint事件过程:1)移动一个窗体或控件,或者是调整其大小。2)对影响大小或外观的任何变量进行改变,如:设置对象的BackColor属性。调用Refresh方法。对上述这些任务来说,Resize事件可能更为合适。例2.2-2画出一个与一个窗体各边的中点相交的菱形,且当窗体大小改变时,菱型自动调整。图2.2-4Paint事件PrivateSubForm_Paint()DimHalfX,HalfY'声明变量.HalfX=ScaleLeft+ScaleWidth/2'设置到宽度的一半。HalfY=ScaleTop+ScaleHeight/2'设置到高度的一半。Line(ScaleLeft,HalfY)-(HalfX,ScaleTop)'画一个菱形。Line-(ScaleWidth+ScaleLeft,HalfY)Line-(HalfX,ScaleHeight+ScaleTop)Line-(ScaleLeft,HalfY)EndSubPrivateSubForm_ResizeRefreshEndSub(3)、Resize事件当一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智慧城市O2O合作项目实施管理合同3篇
- 2024年食堂智能化管理系统研发与应用合同3篇
- 2025年度酒吧整体转让合同范本集锦3篇
- 2025版垃圾清运服务与城市环境综合治理合作协议2篇
- 2024年版光缆维修保养协议版B版
- 2025年度罐车租赁及售后服务协议3篇
- 2025版救灾帐篷政府采购合同范本-专用单帐篷供应协议3篇
- 2024年深远海渔业养殖项目投资合同
- 2024年版汽车清洗服务店承包协议模板版B版
- 2025版二手房垫资买卖合同付款进度协议2篇
- 国有土地上房屋装修备案申请表
- 辽宁盘锦浩业化工“1.15”泄漏爆炸着火事故
- 红黄绿白黑五色食物巧选择红黄绿白黑五色健康法
- 办公楼装修工程难点、重点分析及对策
- 动物行为学论文(无删减范文8篇),动物学论文
- 社会工作理论复习资料
- 某市自来水厂工艺设计
- GB/T 9115-2010对焊钢制管法兰
- GB/T 20882.2-2021淀粉糖质量要求第2部分:葡萄糖浆(粉)
- 西南林业大学宿舍楼环评报告
- 推荐信模板清华
评论
0/150
提交评论