VisualBasic程序设计教程ptc.imust.cn内蒙古科技大学实践训练中心第二章VisualBasic程序设计概述2.1程序设计方法发展简述•计算机软件开发历史结构化程序设计(C,Pascal)高级语言(Fortran,Basic)汇编语言二进制代码(机器语言)面向对象程序设计结构化程序设计早期程序设计面向对象程序设计(C++)可视化程序设计(VB,VC等)2.1.1早期的程序设计•20世纪50年代用机器语言编写代码。程序员重复处理0与1不得不花费大量的时间来编制与调试程序。•采用符号指令的汇编语言代替了机器语言。•高级语言简化了程序设计。用高级语言编写的程序与机器无关;程序员摆脱了机器本身的特性限制,精力只集中于算法。•20世纪70年代初期,大型系统软件(如操作系统、数据库等)给程序设计带来了新的问题。促使人们对程序设计方法进行研究,从而提出了应该如何设计程序,设计程序的基本指导思想是什么,采用什么样的程序设计方法为好等问题。2.1程序设计方法发展简述2.1.2结构化程序设计•1969年荷兰科学家Dijkstra提出了结构化程序设计的思想与概念。•结构化程序设计基本思想:程序的结构规定为:顺序、选择和循环三种基本结构;限制使用GOTO语句,采用自顶向下、逐步求精、模块化程序设计原则,将大型系统分解为功能独立的模块,使其最终转化为上述三种基本结构。•结构化程序未能解决的问题:1、模块分割主要针对控制流,仍含有与人的思维方式不协调的地方,很难自然、准确地反映真实世界,软件质量很难保证。2、只突出了实现功能的操作方法(模块),而被操作的数据(变量)处于功能的从属地位,即程序模块与数据结构是松散地耦合在一起,当程序复杂时,容易出错,难以维护。2.1程序设计方法发展简述2.1.3面向对象程序设计•面向对象程序设计(OOP)旨在使计算机问题的求解更接近于人的思维活动,使软件的开发形成一个由抽象到具体、由简单到复杂这样一个循序渐进的过程。克服大型软件开发中存在的效率低、质量难以保证、调试复杂、维护困难等问题。•面向对象将大量的工作由相应的对象来完成,程序员在应用程序中只需说明要求对象完成的任务。•面向对象程序设计(OOP)的优点:1、使软件开发过程符合人们的思维方法,便于分析解决复杂的问题2、使软件的维护和功能增减易于实现。3、使程序代码可重用,从而提高了软件开发的效率;4、与可视化技术相结合,使用户界面图形化、更美观、更友好。2.1程序设计方法发展简述2.2VisualBasic的对象及其属性、事件和方法1、对象的基本概念“对象”是系统中的基本运行实体。现实生活中,一个人、一辆车等均可视为一个对象。为了区别和标识不同的对象,每个对象有一个属于自己的名字,称为对象名。在VB应用程序中,构成图形用户界面的每一个可视的部件均可视为对象。VisualBasic的对象分为窗体和控件两大类。窗体-窗口本身,是屏幕上的一个矩形区域;控件-窗口上构成图形用户界面的一些基本组成部件;(1)内部控件:是由VB系统提供的。启动VB后,内部控件出现在工具箱上。(2)ActiveX控件:是扩展名为.OCX的独立文件。(3)可插入对象:VB系统中有一些能直接使用的对象,其可被添加到工具箱上。2.2.1VisualBasic的对象2.2VisualBasic的对象及其属性、事件和方法•对象的建立方法:(1)添加和删除控件到窗体上(2)编辑控件①选择控件②移动控件③移动改变控件大小④复制控件⑤控件的布局⑥控件的名称2.2.1VisualBasic的对象2.2VisualBasic的对象及其属性、事件和方法•1、对象的属性在VB系统中,选中一个对象后,可以在属性窗口中修改属性值,也可在程序运行阶段用语句来设置或修改其属性值。在程序中设置属性的语法格式为:对象名.属性名=属性值2.2.2对象的属性、事件与方法2.2VisualBasic的对象及其属性、事件和方法•例【2-1】设计阶段修改对象属性在窗体上放置一个名为command1的命令按钮,将其属性列表框中的caption属性值改为“按钮”,height属性值改为890。解题思路:选择命令按钮,在其属性列表框中修改“caption”和“height”属性。2.2.2对象的属性、事件与方法2.2VisualBasic的对象及其属性、事件和方法•例【2-2】运行阶段修改对象属性在窗体上放置一个名为command1的命令按钮,程序运行后,点击窗体,将命令按钮的caption属性值改为“按钮”,height属性值改为890。解题思路:首先在窗体上放置一个名为command1的命令按钮,在窗体的click事件中填写相应的命令,改写按钮的属性值。2.2.2对象的属性、事件与方法PrivateSubForm_click()command1.caption=“按钮”command1.height=890EndSub2.2VisualBasic的对象及其属性、事件和方法•2、对象的事件、事件过程和事件驱动(1)事件在VB中,事件是发生在对象身上,且能被对象识别的动作。如:用鼠标单击对象,则会在对象身上产生单击事件(Click),双击对象,则会在对象身上产生双击事件(DblClick)。VB系统为每个对象预先定义了一系列事件,例如:单击(Click),双击(DblClick),改变(Change),鼠标移动(MouseMove)等。2.2.2对象的属性、事件与方法2.2VisualBasic的对象及其属性、事件和方法•2、对象的事件、事件过程和事件驱动(2)事件过程当事件在对象身上发生后,应用程序就要处理这个事件,处理事件的步骤就是事件过程。VB应用程序设计的主要工作就是为对象编写事件过程的代码,一般格式为:PrivateSub对象名_事件([参数列表])…‘事件过程代码EndSub2.2.2对象的属性、事件与方法2.2VisualBasic的对象及其属性、事件和方法•2、对象的事件、事件过程和事件驱动(2)事件过程例【2-3】有一命名为Command1的命令按钮对象,要求当用户单击命令按钮时,结束程序的运行解题思路:VB系统中,结束程序运行的命令为“END”。在按钮的click事件中填写该命令即可。2.2.2对象的属性、事件与方法PrivateSubCommand1_click()end‘结束程序的运行EndSub2.2VisualBasic的对象及其属性、事件和方法•2、对象的事件、事件过程和事件驱动(3)事件驱动程序设计在传统的面向过程的程序设计中,应用程序的执行总是从第一行代码开始;在面向对象的程序设计中,应用程序先等待某个事件的发生,然后再去执行处理此事件的事件过程。发生事件的顺序决定了代码执行的顺序,若没有事件发生,整个程序将处于停滞等待状态。2.2.2对象的属性、事件与方法2.2VisualBasic的对象及其属性、事件和方法•2、对象的事件、事件过程和事件驱动(3)事件驱动程序设计VB应用程序的执行步骤:2.2.2对象的属性、事件与方法窗体或窗体上的对象等待事件的发生事件发生时,执行相应的事件过程启动应用程序,装载和显示窗体如此周而复始地执行,直到遇到“END”语句结束程序的运行或单击“结束”按钮强行结束程序的允许。2.2VisualBasic的对象及其属性、事件和方法•3、对象的方法VB系统中的方法指对象本身所包含的一些特殊函数或过程。当用方法来控制一个对象的行为时,其实质就是调用该对象内部的某个特殊的函数的过程。例如:窗体对象拥有Hide方法和Show方法,调用Hide方法可窗体隐藏起来,调用Show方法可使窗体显现出来。在VB系统中对象方法的调用格式:[对象名].方法名[参数列表]如:form1.hide‘隐藏窗体form1form1.show‘显示窗体form12.2.2对象的属性、事件与方法2.2VisualBasic的对象及其属性、事件和方法•3、对象的方法例【2-4】现有一个名为Command1的命令按钮,当用户单击该按钮时,使其移动为坐标(120,300)的位置。解题思路:调用方法“move”,将按钮移动到指定的位置。2.2.2对象的属性、事件与方法PrivateSubcommand1_click()command1.move120,300Endsub2.2VisualBasic的对象及其属性、事件和方法•3、对象的方法例【2-5】当用户单击窗体时,调用窗体对象的方法Print,在窗体上打印出“欢迎你学习VisualBasic6.0”字符串.解题思路:调用窗体的方法“print”,将字符串显示在窗体上2.2.2对象的属性、事件与方法PrivateSubForm_Click()form1.print“欢迎你学习VisualBasic6.0”EndSub2.3窗体对象及其属性、事件与方法2.3.1窗体的属性⑴Name:窗体名称;默认为Form1,只能在属性窗口设置⑵Caption:窗体标题栏显示的文本,可在属性窗口和程序中设置⑶Height,Width:指定窗体的高度和宽度。可在属性窗口和程序中设置⑷Left,top:指定窗体的高度和宽度。可在属性窗口和程序中设置⑸Font:用于改变窗体或对象上文本的外观。FontName:字体类型,用于设置窗体或对象上文本的字体。FontSize:整型,用于设置窗体或对象上文本的字体大小。FontBold:逻辑型,该值为True时用于设置窗体或对象上文本为粗体。FontItalic:逻辑型,该值为True时用于设置窗体或对象上文本为斜体。FontStrikethru:逻辑型,该值为True时给窗体或对象上文本加一删除线FontUnderLine:逻辑型,该值为True时用于给窗体或对象上文本加一下划线2.3窗体对象及其属性、事件与方法2.3.1窗体的属性(6)Enabled:用于决定是否允许操作窗体。True为允许,False为禁止。(7)Visible:用于决定程序运行时窗体是否可见。True为可见,False为不可见。(8)MaxButton,MinButton:用于设置窗体右上角的最大化、最小化按钮。只能在属性窗口中设置。(9)Icon图标和ControlBox控制菜单:在属性窗口中单击Icon设置框右边的“…”,可以装入一个扩展名为.ico或.Cur图标文件,当窗体最小化时加以该图标显示。Icon属性在程序中设置的方法:Form1.Icon=Loadpicture(盘符路径及图标文件名)如:form1.icon=loadpicture(“c:\abc\pict1.ico”)ControlBox属性为True时,窗体有上角有控制菜单框,为False时则无。控制菜单以图标形势显示。2.3窗体对象及其属性、事件与方法2.3.1窗体的属性(10)BackColor:用于设置窗体或对象的背景颜色。(11)ForeColor:用于设置窗体或对象的前景颜色。对于窗体,前景色是窗体上用Print方法输出的文本的颜色,程序运行后才能看到。(12)BorderStyle:用于设置窗体边框的样式。0-None,无边框,无法移动及改变大小1-FixedSingle,单线边框,可移动但不可改变大小2-Sizeable,双线边框,可移动、改变大小3-FixedDialog,为固定对话框,不可改变大小4-FixedToolWindow,窗体外观与工具条相似,有关闭按钮,不能改变大小5-SizeableToolWindow,窗体外观与工具条相似,有关闭按钮,能改变大小2.3窗体对象及其属性、事件与方法2.3.1窗体的属性(13)Picture:用于设置窗体中要显示的图片。方法:单击Picture设置框右边的“…”,便可加载一个图形文件。在程序中设置该属性的方法:Form1.Picture=LoadPicture(图形文件源路径及文件名)如:form1.picture=loadpicture(“d:\abc\pict1.jpg”)(14)WindowsState:用于设置窗口