资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,Visual Basic,程序设计简明教程,第一章,Visual Basic,程序设计概述,(,2,),第二章,VB,简单的程序设计,(,6,),第三章,VB,语言基础,(,4,),第四章 基本的控制结构,(,8,),第五章 数组,(,5,),第六章 过程,(,4,),第七章 常用控件,(,2,),第八章 界面设计,(,2,),第九章 文件,(,2,),第十章 图形,(,1,),第十一章,数据库技术,(自学),第十二章 系统开发案例,(,自学,),2,第一章 Visual Basic概述,1.1 程序设计基本概念,1.2 VB的发展和特点,1.3 VB的安装和启动,1.4 VB集成开发环境,本书目录,3,1.1程序设计基本概念,1.1.1程序和程序设计,下一页,1.,程序,人们想用计算机解决一个问题,必须事先设计好计算机处理信息的步骤,把这些步骤用计算机能够识别的指令编写出来并送入计算机执行,计算机才能按照人的意图完成指定的工作。我们把计算机能执行的指令序列称为,程序,,而编写程序的过程称为,程序设计,。,例如,下面是某一个学校颁奖大会的程序:,宣布大会开始,介绍出席大会的领导,校长讲话,宣布获奖名单,颁奖,获奖代表发言,宣布大会结束,程序主要用于描述完成某项功能所涉及的,对象,和,动作,规则,领导、校长、名单、代表、话、奖等都是对象;,而宣布、介绍、讲、颁等都是动作,本章目录,上一页,4,上一页,下一页,Visual Basic编写的程序,显示教龄,30,年的教职工姓名,Sub Form_Click(),Open zg.dat For Input As #1,Do While Not EOF(1),Input #1,姓名,部门,教龄,If,教龄,= 30 Then Print,姓名,部门,Loop,Close #1,End Sub,本章目录,5,上一页,下一页,1.1.2程序设计语言,人与计算机交流使用的是,“,程序设计语言,”,。同人类语言一样,程序设计语言也是由,字、词,和,语法,规则构成的一个系统。,程序设计语言发展的过程,分为三类,:,1.,机器语言,2.,汇编语言,3.,高级语言,本章目录,6,要介绍Visual Basic,不能不提到BASIC语言。BASIC是英文Beginner,s All-purpose Symbolic Instruction Code(,初学者通用符号指令代码,)的缩写,它是专门为初学者设计的高级语言。,1.2,Visual Basic,的发展和特点,7,Visual Basic是Microsoft公司于1991年推出的基于窗口的,可视化程序设计语言,。,“,Visual,”,是,“,可视化的,”,、,“,形象化的,”,的意思,。,Visual Basic的语法与BASIC语言的语法基本相同,因此Visual Basic也具有易学易用的特点,此外它还提供了一套可视化设计工具,大大简化了Windows程序界面的设计工作,同时其编程系统采用了,面向对象,、,事件驱动机制,,与传统BASIC有很大的不同。目前Visual Basic的最新版本是,Visual Basic 6.0,(简称VB 6.0),其功能十分强大,应用Visual Basic可以方便地完成从小的应用程序,到大型的,数据库管理系统,、,多媒体信息处理、功能强大的Internet应用程序,等各项任务。,8,学习版,:使用一组工具来创建功能完备的Windows应用程序,(它包括所有的内部控件连同网络、数据绑定等控件)适用于初学者,专业版,:在学习版的基础上添加了一些专门的工具和一个报表编制工具。它主要针对计算机专业开发人员,(除了具有学习版的全部功能外,还包括ActiveX和Internet控件开发工具之类的高级特性),企业版,:包括了用于客户/服务器应用程序的工具。(除了具有专业版的全部功能外,还包括了一些特殊的工具),VB 6.0安装完成后,,“,Microsoft Visual Basic 6.0中文版,”,菜单选项即加入到,“,开始,”,菜单的,“,程序,”,组中。单击其中的,“,Microsoft Visual Basic 6.0中文版,”,即可启动VB 6.0。,9,上一页,下一页,1.2.2 Visual Basic功能特点,1,引例,例,1.1,简单的动画演示。,一行文字“欢迎使用,Visual Basic”,在具有背景图案的窗体中上、下移动,(,稍改动也可左、右移动,),。,移动方法有两种:单击手动按钮,移动,50,单位;单击自动按钮,按时钟触发频率连续移动;当内容超出窗体范围时,进行反弹。,本章目录,10,上一页,下一页,2,功能特点,1),具有面向对象的可视化设计工具,2),事件驱动的编程机制,3),提供了易学易用的应用程序集成开发环境,4),结构化的程序设计语言,5),强大的数据库功能,6) Active,技术,7),网络功能,8),多个应用程序向导,9),完备的,Help,联机帮助功能,本章目录,VB功能特点,11,上一页,下一页,1.3 VB的安装和启动,1.3.1,安装,VB6.0,是,Windows,下的一个应用程序,有学习版、专业版和企业版三种版本形式。,VB6.0,系统可以在一张,CD,盘上,也可以在,Visual Studio,产品的第一张,CD,盘上。一般都有一个,VB,自动安装程序,也可以执行,VB6.0,子目录下的,Setup.exe,,在安装程序的提示下进行,对初学者可采用,典型安装,方式。,VB6.0,联机帮助文件都使用,MSDN,文档的帮助方式,,联机帮助文件不在,VB6.0,系统盘上,,而与,Visual Studio,产品的帮助集合在两张,CD,盘上,在安装过程中,系统会提示插入,MSDN,盘。,本章目录,12,上一页,下一页,1.3.2 启动,选择程序菜单中的,Microsoft Visual Basic 6.0,中文版程序,就可启动,VB 6.0,。,在,VB 6.0,窗口列出了,VB,能够建立的应用程序类型,初学者只要选择默认,标准,.EXE,。,在该窗口中有三个按钮:,新建:建立新工程,现存:选择和打开现有的工程,最新:列出最近使用过的工程,单击新建按钮,就可创建该,类型的应用程序。,本章目录,13,上一页,下一页,1.4 集成开发环境,本章目录,14,上一页,下一页,1.,主窗口,应用程序窗口由标题栏、菜单栏和工具栏组成,2.,窗体,(form),窗口,设计,vb,程序的 界面,3.,代码,(code),窗口,编辑窗体、标准模块中的代码,4.,属性,(properties),窗口,所有窗体或控件的属性设置,5.,工程资源管理器,(project expror),窗口,保存一个应用程序所有的文件,6.,工具箱,(toolbox),窗口,显示各种控件的制作工具,供用户在窗体上设计,本章目录,15,上一页,下一页,1.4.1 窗体窗口,窗体是建立,VB,应用程序的主要部分,用户通过与窗体上的控制部件交互可得到结果。每个窗体窗口必须有一个惟一的窗体名字,建立窗体时默认名为,Form1,、,Form2,在设计状态的窗体由网格点构成,方便用户对控件的定位,网格点间距可以通过,工具,|,选项,命令,在通用标签的窗体设置网格中输入宽度和高度来改变;,运行时可通过属性控制窗体的可见性,(,窗体的网格始终不显示,),。,一个应用程序至少有一个窗体窗口,用户可在应用程序中拥有多个窗体窗口。,本章目录,16,上一页,下一页,1.4.2 属性窗口,所有窗体或控件的属性,如颜色、字体、大小等,可以通过属性窗口来修改。,本章目录,17,上一页,下一页,1.4.3 工程资源管理器窗口,工程资源管理器窗口保存一个应用程序所有属性以及组成这个应用程序所有的文件。工程文件的扩展名为,.VBP,。,本章目录,18,上一页,下一页,1.4.4 代码窗口,代码窗口用来显示和编辑程序代码。打开代码窗口方法:,(1),从工程窗口中选择一个窗体或标准模块,并选择,查看代码,按钮;,(2),从窗体窗口中打开代码窗口,可用鼠标双击一个控件或窗体本身;,(3),从,视图,菜单中选择,代码窗口,命令。,本章目录,19,上一页,下一页,1.4.5 工具箱窗口,工具箱窗口由,21,个被绘制成按钮形式的图标所构成,显示了各种控件的制作工具,利用这些工具,用户可以在窗体上设计各种控件。其中,20,个控件称为标准控件,(,注意,指针不是控件,仅用于移动窗体和控件,以及调整它们的大小,),。,用户也可通过,工程,|,部件,命令将来装入,Windows,中注册过的其他控件装入到工具箱。,本章目录,20,第二章 简单的VB程序设计,2.1 VB对象的概念,2.2 建立简单的应用程序,2.3 窗体和基本控件,2.4 工程的管理及环境的设置,2.5 使用帮助系统,2.6 程序调试,本书目录,21,上一页,下一页,2.1 Visual Basic对象的概念,2.1.1,对象和类,1.,对象,可以把对象想象成日常生活中的某个实在的物体。,例如,一个人、一辆汽车、一张桌子、一台电脑等都是一个个对象。,任何对象都具有各自的特征(,属性,)、行为(,方法,)。,人有身高、体重、视力、听力等特征;也具有起立、行走、说话、使用电脑、踢足球等行为。,在,VB,中,将反映对象的属性和行为封装在一起,是面向对象编程的基本元素。,本章目录,22,上一页,下一页,2.类的概念,类是创建对象实例的模板,是同种对象的集合与抽象,它包含所创建对象的属性描述和行为特征的定义。,例如,人类是人的抽象,一个个不同的人是人类的实例。各个人具有不同的身高、体重等属性值和不同的行为。,在,VB,中,工具箱上的可视图标是,VB,系统设计好的,标准控件类,。通过将控件类实例化,可以得到真正的控件对象,也就是当在窗体上画一个控件时,就将类转换为对象,即创建了一个控件对象,简称为控件。,本章目录,23,上一页,下一页,例:工具箱内的,TextBox,是类,它确定了,TextBox,的属性、方法和事件。窗体上显示的是两个,Text,对象,。,本章目录,24,3.对象的建立和编辑,对象的建立,(1)在工具箱中单击左键进行选择,(2)在窗体上按下鼠标左键拖动到适当大小,对象的选定,单个对象:单击对象,多个对象:,(1)先选定一个对象,按CTRL键再单击其他对象,(2)拖动鼠标,将欲选定的对象包围在一个虚线框内,对象的复制和删除,复制:选中对象-单击复制-单击粘贴 -弹出的对话框中选“否”,删除:选中对象,按DEL键,25,上一页,下一页,属性、事件和方法,构成了对象的三要素。,1.,属性,属性保存对象中的数据。例如,控件名称,(Name),、标题,(Caption),、颜色,(Color),、字体,(FontName),等属性决定了对象展现给用户的界面具有什么样的外观及功能。,可以通过以下两种方法设置对象的属性:,1),在设计阶段利用属性窗口直接设置对象的属性值,2),在程序运行时间通过语句,对象名,.,属性名,=,属性值,实现,例如:,Command1.Caption=,确定,注意:有一些属性只能在设计阶段通过属性窗口设置,在程序运行阶段不可改变,称为只读属性。,2.1.2 对象的属性、事件和方法,本章目录,26,上一页,下一页,2.,事件、事件过程和事件驱动,(1),事件,事件就是发生在对象上的事情。同一事件,作用于不同的对象,就会引发不同的反应,产生不同的结果。,例如,在学校,教室楼的铃声是一个事件,教师听到铃声就要准备开始讲课,向学生传授知识;学生听到铃声,就要准备听教师上课,接受知识;而行政人员对铃声可不于响应。,在,VB,中,系统为每个对象预先定义好了一系列的事件。,例如,单击,(Click),、双击,(DblClick),、改变,(Change),、获取焦点,(GotFocus),、键盘按下,(KeyPress),等。,事件,本章目录,27,上一页,下一页,(2),事件过程,应用程序处理事件的步骤就是事件过程。它是针对某一对象的过程,并与该对象的一个事件相联系。,VB,应用程序设计的主要工作就是为对象编写事件过程中的程序代码。,事件过程的形式如下:,Sub,对象名,_,事件,(,参数列表,),事件过程代码,End Sub,例如单击命令按钮,Command1,,使按钮的字体大小改为,20,磅:,Sub Command1_Click(),Command1.FontSize=20,End Sub,本章目录,事件过程,28,上一页,下一页,(3),事件驱动程序设计,程序执行的先后次序与程序设计者无关,取决于用户的操作,,这就是事件驱动程序设计方式。,VB,程序的执行步骤如下:,启动应用程序,装载和显示窗体;,窗体,(,或窗体上的控件,),等待事件的发生;,事件发生时,执行对应的事件过程;,重复执行步骤和。,本章目录,事件驱动,29,方法,上一页,下一页,3.,方法,面向对象的程序设计语言,为程序设计人员提供了一种特殊的过程和函数称为方法。,因为方法是面向对象的,所以在调用时一定要用对象。对象方法的调用格式为:,对象,.,方法,参数名表,若省略了对象,表示为当前对象,一般指窗体。,例如:,Form1.Print ,欢迎您使用,Visual Basic 6.0!,使用,Print,方法在对象为,Form1,窗体中显示,“,欢迎您使用,Visual Basic 6.0!”,的字符串。,本章目录,30,2.2 建立简单的应用程序,上一页,下一页,例,2.1,编写一个人民币与美圆兑换的程序。,建立一个应用程序分为以下几步进行:,(1),建立用户界面的对象;,(2),对象属性的设置;,(3),对象事件过程及编程;,(4),保存和运行程序。,本章目录,测验,:,在屏幕上显示,“,您好,朋友,”,,采用,4,个控件,文本控件用来显示信息,,3,个命令按纽分别用来执行显示、清除、结束操作。,31,2.3 窗体和基本控件,上一页,下一页,2.3.1,基本属性,(1)Name,名称属性,所有对象都具有的属性,是所创建的对象名称。所有的控件在创建时由,VB,自动提供一个默认名称。在程序中,对象名称是作为对象的标识在程序中而引用。,(2)Caption,标题属性,该属性决定了控件上显示的内容。,(3)Height,、,Width,、,Top,和,Left,属性,Height,和,Width,属性决定了控件的高,度和宽度,,Top,和,Left,属性决定了控件在窗体中的位置。,本章目录,32,2.3.1 基本属性之二,上一页,下一页,(4) Enabled,属性,决定控件是否允许操作,True,:允许用户进行操作,并对操作作出响应,False,:禁止用户进行操作,呈暗淡色,(5) Visible,属性,决定控件是否可见,True,:程序运行时控件可见,False,:程序运行时控件隐含起来,但控件本身存在,(6) Font,属性组,改变文本的外观,其中:,FontName,字体、,FontSize,字体大小、,FontBold,粗体、,FontItalic,斜体、,FontStrikethru,删除线、,FontUnderline,下划线,本章目录,例,2.2,在窗体是建立两个命令按钮,33,基本属性之三,上一页,下一页,(7) ForeColor,属性,设置或返回控件的前景颜色,(8) BackColor,属性,正文以外的显示区域的颜色,(9) MousePointer,鼠标指针类型属性,当鼠标移动到对象的一个特定部分时,被显示的鼠标指针的类型,设置值的范围为,0,15,。若值为,99,,由用户提供的图形文件定义鼠标指针形状。,(10) MouseIcon,属性,设置自定义的鼠标图标,文件类型为,.ico,或,.cur,,图标库在,Graphics,目录下。该属性必须在,MousePointer,属性设为,99,时使用。,本章目录,34,基本属性之四,上一页,下一页,(11) TabIndex,属性,TabIndex,属性决定了按,Tab,键时,焦点在各个控件移动的顺序。,当对象具有焦点时,可接受用户的输入。,Windows,环境下,可同时运行多个应用程序,有多个窗口,但焦点只有一个。,当窗体上有多个控件时,对大部分控件系统会分配一个,Tab,顺序。所谓,Tab,顺序,就是按,Tab,键时焦点在各个控件上移动的顺序。一般,其顺序与控件建立的顺序相同,若要改变顺序,可以设置控件的,TabIndex,属性,,TabIndex,属性决定了它在,Tab,中的位置。按默认值规定,第一个建立的控件的,TabIndex,属性值为,0,,第二个为,1,,依次类推。,本章目录,35,基本属性之五,上一页,下一页,(12),控件默认属性,所谓默认属性是程序运行时,可以改变某控件的值,而不必指定该控件的哪个属性。,控 件,默认属性,控 件,默认属性,文本框,命令按钮,单选按钮,Text,Default,Value,标签,图形、图像框,复选框,Caption,Picture,Value,例如,下面两条语句是等价的:,Text1.Text=Visual BASIC,Text1 =Visual BASIC,本章目录,36,2.3.2 窗体,上一页,下一页,窗体是一块画布,是所有控件的容器,用户可以根据自己的需要利用工具箱上的控件在画布上画界面。,1.,主要属性,窗体属性决定了窗体的外观和操作。,本章目录,37,窗体-属性,上一页,下一页,(1) Caption,属性,决定窗体标题栏显示的内容,(2) MaxButton,和,MinButton,属性,控制窗体右上角有最大化按钮和最小化按钮的显示,(3) ControlBox,属性,控制窗体左上角有控制菜单框是否出现,当无控制菜单框,时,系统将,MaxButton,和,MinButton,自动设置为,False,。,(4) Icon,属性,设置窗体最小化时显示图标,(5) Picture,属性,设置窗体中要显示的图片,(6) BorderStyle,属性,此属性决定窗体的边框类型,(7) WindowsState,属性,窗体执行时显示状态,正常状态、最小化状态,最大化状态,本章目录,38,窗体-事件,上一页,下一页,最常用的事件有,Click,、,DblClick,和,Load,。,Load,事件是在窗体被装入工作区时触发的事件。当应用程序启动,自动执行该事件,该事件通常用来在启动应用程序时对属性和变量进行初始化。,例,2.3,使,窗体无最大化按钮和最小化按钮,在窗体,启动,时,在标题栏显示,“,装入窗体,”,,并在窗体上装入一背景图;当用户单击窗体,在标题兰显示,“,鼠标单击,”,,在窗体中显示,“,欢迎使用,VB,”,,双击窗体,在标题兰显示,“,鼠标双击,”,,并在窗体中显示,“,结束使用,VB,”,。,本章目录,39,2.3.3 标签-属性,上一页,下一页,除了,Caption,、,Font,、,Left,、,Top,等外,还有:,(1) BackStyle,属性,控制控件是否透明,(0,透明,,1,不透明,),(2) BorderStyle,属性,控件周围是否有边框,(0,无,,1,有,),(3) Alignment,属性,决定,Caption,属性值内容的对齐方式。,0-,左对齐;,1-,右对齐;,2-,居中。,(4) AutoSize,属性,AutoSize,属性决定控件是否自动调整大小,WordWrap,属性决定标签内容超出标签宽度时,是否自动换行。,例,2.4,标签,-,属性,本章目录,40,例,2.4,控件设置,效果,41,2.3.3 标签-事件,上一页,下一页,标签经常接收的事件有:单击,(Click),,双击,(DblClick),和改变,(Change),。但通常标签仅起到在窗体上显示文字作用,因此,一般不需编写事件过程。,例,2.5,利用两个标签控件,显示具有浮雕效果的文字,实现思路:,浮雕效果可利用两种颜色的文字错位叠加来实现。,为了实现错位,可使两个标签的,Left,、,Top,属性值有一点差距。,为了避免叠加上去的标签覆盖原来标签显示的文字,要将标签的,BackStyle,背景样式属性设置为,0,,即透明的。,本章目录,42,2.3.4 文本框-属性之一,上一页,下一页,文本框是一个文本编辑区域,用户可以在该区域输入、编辑、修改和显示正文内容。,1.,主要属性,(1) Text,文本属性,文本框无,Caption,属性,显示的正文内容存放在,Text,属性中。当程序执行时,用户通过键盘输入、编辑正文。,(2) Maxlength,属性,指明文本框中能够输入的正文内容的最大长度。,0,-,任意长字符串;非零值,-,文本框中字符个数的最大值。,注意,:在,VB,中字符长度以字为单位,也就是一个西文字符与一个汉字都是一个字,长度为,1,。,本章目录,43,文本框属性之二,上一页,下一页,(3) MultiLine,多行属性,当,MultiLine,属性为,True,时,文本框可以输入或显示多行正文,同时具有文字处理器的自动换行功能,即输入的正文超出显示框时,会自动换行。按,Enter,键可插入一空行。,(4) ScrollBars,滚动条属性,当,MultiLine,属性为,True,时,,ScrollBars,属性才有效。,0,(,vbNone,)无滚动条;,1,(,vbHorizontal,) 加水平滚动条;,2,(,vbVertical,) 加垂直滚动条;,3,(,vbBoth,) 同时加水平和垂直滚动条。,注意,:当加入了水平滚动条以后,文本框内的自动换行功能会自动消失,只有按,Enter,键才能回车换行。,本章目录,44,文本框属性之三,上一页,下一页,(5) Locked,属性,控制文本控件的内容是否可被编辑,当设置为,True,时,文本控件相当于标签的作用。,(6) SelStart,、,SelLength,和,SelText,属性,在程序运行中,用来标识用户选中的正文。,SelStart,选定的正文的开始位置,第一个字符的位置是,0,。,SelLength,选定的正文长度。,SelText,选定的正文内容。,设置了,SelStart,和,SelLength,属性后,,VB,会自动将设定的正文存入,SelText,。,例,2.6,创建一个简单的文本编辑器,本章目录,45,2.3.4 文本框-事件,上一页,下一页,(1) Change,事件,当,Text,属性值发生改变时会引发该事件。用户每输入一个字符就会引发一次,Change,事件。,(2) KeyPress,事件,当按下并且释放键盘上的一个键时,就会引发焦点所在控件的,KeyPress,事件,参数,KeyAscii,指示,按键的,Ascii,码,值,。,事件中最常用于判断是否输入回车符,(KeyAscii,的值为,13),(3) LostFocus,事件,此事件是在一个对象失去焦点时发生。,(4) GotFocus,事件,当一个对象获得焦点时发生。,本章目录,46,2.3.4 文本框-方法,上一页,下一页,文本框最有用的方法是,SetFocus,,该方法是把光标移到指定的文本框中。当在窗体上建立了多个文本框后,可以用该方法把光标置于所需要的文本框上。其形式如下:,对象,.SetFocus,本章目录,47,例,2.7,对输入的数据进行合法性检验,过滤不合法的数据。,当输入结束时,对于输入正确的数据,显示正确信息;对输入的非数字数据显示错误信息、清除文本框中的内容,并使焦点重新回到文本框。,分析:在文本框输入数据,可通过回车键或按,Tab,键表示输入结束,当然引发的事件也不同。按回车键,焦点没有离开,通过,KeyPress,事件来判断;按,Tab,键,焦点离开该控件,通过,LostFocus,事件来判断。本例以按,Tab,键表示输入结束。,Text2_ LostFocus,当输入结束按,Tab,键时,该事件激发,IsNumeric(Text2) :,判断是否输入非数字数据,.,Text2.SetFocus :,使焦点重新回到文本框,文本框的应用 数据过滤,48,2.3.5 命令按钮,上一页,下一页,在程序运行时,当用户选中某个命令按扭时就会执行相应的事件过程。常用以下方法可以选中命令按钮:,(1),用鼠标单击。,(2),按,Tab,键将焦点移到相应按钮上,再按回车键。,(3),快捷键,(Alt+,有下划线的字母,),。,1.,主要属性,(1) Caption,属性,如果某个字母前加入,&,,则程序运行时标题中的该字母带有下划线,该带有下划线的字母就成为快捷键。,(2) Style,属性,Style,属性设置为,1,,命令按钮可显示,Picture,属性中装入的图形。,本章目录,49,2.3.5 命令按钮,上一页,下一页,(3) Picture,属性,Style,属性设置为,1,,则,Picture,属性可显示图形文件。,(4) ToolTipText,工具提示属性,与,Picture,属性同时使用。如果仅用图形作为对象的标签,那么能够使用此属性以较少的文字解释每个对象。,2.,事件,命令按扭接收,Click,事件,本章目录,50,2.5 综合应用,上一页,下一页,例,2.9,建立一个类似记事本的应用程序,该程序主要提供两类操作:,(,1,)剪切、复制和粘贴的编辑操作;,(,2,)字体大小的格式设置。,分析,:,(,1,)根据题目要求,建立一个文本框输入文本,文本框应该有滚动条,为了便于调试,程序运行时文本框有初始值。,(,2,)为了解释命令按钮的属性,其中实现剪切、复制、粘贴的,3,个命令按钮以图形形式显示,其他命令按钮以标准形式显示;由于命令按钮较多,为了便于区分,用按钮的功能重新设置,Name,名称。,本章目录,51,52,使用方法的语法形式:,对象,.,方法,参数列表,1.Print,方法,形式,: ,对象,.PrintSpc(n)|Tab(n),表达式列表,;,|,,,作用,:,在对象上输出信息,对象:,窗体、图形框或打印机,(Printer) ,省略对象在窗体上输出。,Spc(n),函数:插入,n,个空格,允许重复使用。,Tab(n,),函数:左端开始右移动,n,列,允许重复使用。,;,(,分号,),:光标定位上一个显示的字符后。,,,(,逗号,),:光标定位在下一个打印区的开始位置处。,无,;,,换行。,开始打印的位置是由对象的,CurrentX,和,CurrentY,属性决定,,缺省为打印对象的左上角,0,,,0,。,注意:,Print,方法在,Form _Load,事件过程中起作用,必须设置窗体的,AutoRedraw,为,True,。,常用方法,53,例,2.9,显示图形,Private Sub Form_Click(),For i = 1 To 5,Print Tab(i); String(6 - I, ); Spc(6); String(I, ),Next i,End Sub,考虑:若把,Spc(6),换成,Tab(6),,效果如何?,54,常用方法,上一页,下一页,1,),Cls,方法,形式,: ,对象,.Cls,作用,:,清除运行时在窗体或图形框中显示的文本或图形。,注意,:,不清除在设计时的文本和图形。,2,),Move,方法,形式,: ,对象,.Move,左边距离,,上边距离,,宽度,,高度,作用,:,移动窗体或控件,并可改变其大小。,对象,:可以是窗体及除时钟、菜单外的所有控件,例,2.10,移动图形示例,程序运行时在图像框装入一幅图,单击窗体使图像框移到窗体的中心,本章目录,55,2.4 工程的管理及环境的设置,一.工程的组成,一个工程包括各种类型的文件:,工程文件(.Vbp):与该工程有关的全部文件和对象的清单,窗体文件(.frm):控件及属性、事件过程和自定义过程,窗体的二进制数据文件(.frx):当窗体上控件的数据属性含有二进制值时(如图片),将窗体保存时,系统自动产生同名.frx文件。,标准模块文件(.bas):包含模块级的变量和外部过程的声明,二.创建、打开和保存工程(略),本章目录,56,注意:,1.,窗体名,和,窗体文件名,概念,,窗体名,:窗体的Name属性,在代码中用来引用该窗体,同一工程不能有相同的窗体名;,窗体文件名,:窗体存放在磁盘上的文件名,该文件包含了该窗体的所有控件属性和代码,同一文件夹不能有相同的文件名。,2. 在工程中添加现存的窗体时,只是将对该窗体文件的引用纳入工程,而不是添加该文件的复制件。因此,如果更改窗体并保存它,会影响包含此窗体文件的任何工程。,3. 在工程中删除窗体时,仅将此窗体从工程里删除掉,但是窗体文件仍存在于磁盘上。但是,如果在VB之外删除一个窗体文件,VB不能更新此工程文件,当打开此工程时,将显示一个文件丢失的错误信息。,4.,对窗体文件改名(P43),窗体文件名,窗体名,三,.,添加、删除和保存文件,57,2.5 使用帮助系统,上一页,下一页,使用,MSDN Library,查阅器,通过,VB,的帮助菜单,选择内容、索引或搜索菜单项,本章目录,58,2.6,程序调试,.错误类型,(1)编辑错误,在编辑代码时,VB会对键入的代码直接进行语法检查。当发现代码存在打字错误,遗漏关键字或标点符等语法错误,VB在Form窗口中弹出一个子窗口,提示出错信息,出错的那一行变成,红色,。这时,用户必须单击“确定”按钮,关闭出错提示窗,然后对出错行进行修改。,本章目录,59,(2)编译错误,编译错误指按了“启动”按钮,VB开始运行程序前,先编译执行的程序段时,产生的错误。此类错误由于用户未定义变量、遗漏关键字等原因产生。这时,Visual Basic也弹出一个子窗口,提示出错信息,出错的那一行被,高亮度,显示。,60,(3) 运行错误,运行时错误指VB在编译通过后,运行代码时发生的错误。这类错误往往是指令代码执行了一非法操作引起的。例如类型不匹配、试图打开一个不存在的文件等。,61,(4) 逻辑错误,程序运行后,得不到所期望的结果,这说明程序存在逻辑错误。这类错误往往是程序存在逻辑上的缺陷所引起。例如,运算符使用不正确、语句的次序不对、循环语句的起始、终值不正确等。通常,逻辑错误不会产生错误提示信息,故错误较难排除,需要程序员仔细地阅读分析程序以及调试。,62,2,调试错误,(,1,),VB,的三种模式,设计模式,设计,进行程序的界面设计、属性设置、代码编写等。,运行模式,运行,执行“运行,/,启动”命令,可以查看程序代码,但不能修改。,中断模式,中断,当在运行模式,按了“中断”命令或当程序出现运行时错误时进入中断模式。可以查看代码、修改代码、检查数据。,63,2,设置断点和逐语句跟踪,断点是告诉,VB,挂起程序执行的一个标记,当程序执行到断点处即暂停程序的运行,进入中断模式。设置或删除断点的步骤:,中断模式下,直接查看某个变量的值,只要把鼠标指向所关心的变量处,稍停一下,就在鼠标下方显示该变量的值。,断点标记,当前行,64,1.,使用中文标点符号,系统产生“无效字符”,以红色显示,2.,字母和数字形状相似,小写字母“,l”,和数字“,1”,形式相同、小写字母“,o”,与数字“,0”,。,3.,对象名称,(Name),写错,Text1,、,Text2,、,Command1,txtInput,、,txtOutput,、,cmdOk,4.,对象的属性名、方法名、标准函数名写错,尽量使用自动列出成员功能。正确的系统按规定的大小写表示。,5.,无意形成控件数组,建立控件时小心使用“复制”、“粘贴”按钮,6.,打开工程时找不到对应的文件,保存文件时先保存窗体,.frm,文件、再保存,.vbp,文件,注意路径。,2.7,常见错误,65,第三章 Visual Basic语言基础,3.1 数据类型,3.2 变量与常量,3.3 运算符和表达式,3.4 常用内部函数,3.5 编码规则,本书目录,66,3.1 数据类型,上一页,下一页,本章目录,67,3.1 VB中的数据类型,一,数据类型,在为计算机编程时,会使用各种各样的数据。因此,我们在编写程序代码时就必须事先说明所使用的数据类型,以便计算机能够正确识别.VB中提供了:,数值型、字符型、布尔型 、日期型、对象型、变体型等数据类型,.,1 数值(Numeric),数值型包括:整型Integer(%)、长整型Long(&)、单精度型Single(!)、双精度型Double(#)、货币型Currency()、字节型byte,详细说明见P53表。,68,2 字符数据类型(String),字符串(string)是一个字符序列,包括所有西文字符和汉字,这符两侧用双引号括起来。,注意:P54,3 逻辑(Boolean)数据类型,逻辑型数据用于逻辑判断,它用True和False表示某个事件的两个方面,且只有两种取值(True / False),通常作为判断条件。当逻辑型数据转换成整型数据时,,True转换为-1,False转换为0;当将其他类型数据转换成逻辑数据时,非0数转换为True,0转换为False,。,69,4 日期(Date)数据类型,日期型数据在VB中以8个字节来存储,包括日期与时间,日期和时间的表示范围:,日期:公元100年1月1日到9999年12月31日,时间:00:00:00到23:59:59,任何字面上可被认作日期和时间的字符,只要用号码符(#)括起来,都可以作为日期型数据。,例:#5/12/88# 、#May 1,77# 、#2000-4-9# 、#1 May , 1998#等,70,另外,数值型还可转变为日期型。转换规则如下:,小数点左边的数字代表日期部分,负数代表的是1899年12月30日之前的日期,正数据代表的是1899年12月30日以后的日期;而小数点右边的数据代表时间部分,0对应午夜,0.5对就中午12:00:00。,例:Private Sub Text1_Change(),Dim y1 As Date,y1 = Val(Text1),Text2 = y1,End Sub,71,5 变体数据类型(Variant),变体数据是指定义变量时不指定特定的类型。用变体数据类型声明的变量与用其它数据声明的变量区另在于:,变体变量,其他变量,变量存在但无数据类型 变量存在且有数据类型,数据类型不固定 数据类型固定,变体型数据是对所有未定义的变量的缺省数据类型定义,它对数据的处理完全取决于程序上下文的需要。它可以包括数值型、日期型、对象型、字符型的数据。,72,3.2 变量与常量 (P55),上一页,下一页,3.2.1,变量或常量的命名规则,变量:在程序运行中其存储的值可以改变。,常量:在程序运行中其值不可以改变。,命名 规则:,必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度小于等于,255,个字符。,不能使用,VB,中的关键字。例:,Left,、,Mid,、,Int,、,public,、,Sub,、,If,、,End,。,VB,中不区分变量名的大小写,一般变量首字母用大写字母,其余用小写字母表示;常量全部用大写字母表示。,为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。,本章目录,73,3.2.2变量声明,使用变量之前,一般必须先声明变量名及其类型。声明变量就是给变量分配内存空间。,1 用Dim语句声明变量,格式:,Dim 变量名 As 类型,其中:,As 类型:缺省,“,AS 类型,”,时,则所创建的变量默认为,变体,类型。,为了方便定义,可在变量名后加,类型符,来代替,“,AS 类型,”,。此时,变量名与类型符之间不能有空格。,74,例:,Dim dp4 As string,等价于,: Dim dp4$,Dim na6 As integer,等价于,: Dim na6%,注:一个,Dim,语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用。,例:,Dim p1 as string , p5 as string,该语句声明了字符串变量,P1,P5,,,而语句:,Dim p1,p5 as string,它创建了变体型变量,P1,,字符型变量,P5,。,75,对字符串变量,根据其存放的字符串长度是否固定,其定义方法有两种:,Dim,字符串变量名,AS String,Dim,字符串变量名,AS Strint,*,字符数,例:,Dim s1 As String,声明变长字符串,Dim s2 As String*50,声明定长字符串变量,可存放,50,个字符,对上例声明的定长字符串变量,s2,,若,赋予的字符少于,50,,则右部补空格;若赋予的字符超过,50,个,则多余部分截去。,76,2 隐式声明,VB中允许对使用的变量未进行声明而直接使用(不定义而直接使用的变量),称为,隐式声明,。所有隐式声明的变量都是Variant类型的。,注:若在菜单项,“工具”“选项,”,设置(选择)了 ,“,要求变量声明,”,则变量的隐式声明无效,必须对所使用的变量进行声明。,77,在编程时使用隐式声明似乎很方便,但是如果在以后的使用中要是把变量名拼错,会导致一个难以查找的错误。因此,提倡使用对变量进行声明的方法。,例:,Private Sub Form_click(),a1 = Hollo!,b = Ok,c = 123,Print al,Print b, c,End Sub,78,3.2.3,常量,常量是在程序运行中不变的量。在VB中,除系统提供的常量外,还有两种常量:,普通常量和符号常量。,1 普通(直接)常量 P,57,。例:123,,“,程序,”,,123D3,2 符号常量(用户声明的常量),符号常量就是用标识符所代表的常量,在程序中用该标识符来代替永远不变的数值或字符串。它与一般变量的区别:,不允许给常量重新赋值,。例:如果定义常量PI=3.14,在程序中如果再使用PI=3.1415将是错误的。,79,(1)常量的命名,常量的命名规则与变量命名规则相同。,(2)常量的声明,格式:,Const 常量名 As Type = 表达式,其中:,Const:说明该语句为常量声明语句;,AS Type:常量的数据类型,若省略则以所赋给常量的值的,类型所决定。,表达式:由数值常数或字符串常数及运算符组成的表达式。,例: Const Pi=3.14159,Const ST1 As String =Name,注:一般如果在程序中的几个地方用到同一个值,就可以将该值声明为一个常量,如果以后想改变这个值,只须更新Const声明即可。,80,3.3 运算符和表达式,上一页,下一页,和其他语言一样,,VB,中也具有丰富的运算符,通过运算符和操作数组合成表达式,实现程序编制中所需的大量操作。,运算符是表示实现某种运算的符号。,VB,中的运算符可分四类:,算术运算符,字符串运算符,关系运算符,逻辑运算符,本章目录,81,3.3.1 运算符-算术运算符,上一页,下一页,例:,5+10 mod 10 9 / 3 +2 2,结果:,10,注意,:算术运算符两边的操作数应是数值型,若是数字字符或逻辑型,则自动转换成数值类型后再运算。,例如:,30-True,结果是,31,,逻辑量,True,转为数值,-1,,,False,转为数值,0,False + 10 +,4,结果是,14,本章目录,设,ia=3,82,运算符-字符串运算符,上一页,下一页,、,+,字符串连接,&,两旁的操作数可任意,转换成字符型后再连接,+,两旁的操作数应均为字符型;若为数值型则进行算术加运算;若一个为数字字符,另一个为数值,则自动将数字字符转换为数值后进行算术加;若一个为非数字字符型,另一个为数值型,则出错。例如:,操作,结果,操作,结果,abc,&,123 abc123 ,abcdef ,+,12345,出错,123,&,456 123456,123,&,True 123True,123,+,456 579,123,+,True 122,注意:,在变量后使用运算符时,变量与间应加一个空格,本章目录,83,运算符-关系运算符,上一页,下一页,关系运算符是双目运算符,作用是将两个操作数进行大小比较,若关系成立,则返回,True,,否则返回,False,。操作数可以是数值型、字符型。比较规则:,P61,本章目录,84,运算符-逻辑运算符,上一页,下一页,逻辑运算符除,Not,是单目运算符外,其余都是双目运算符,作用是将操作数进行逻辑运算,结果是逻辑值,True,或,False,。,本章目录,85,3.3.2表达式,上一页,下一页,1.,组成,变量、常量、函数、运算符和圆括号,2.,书写规则,(1),运算符不能相邻。例,a,+,-b,是错误的。,(2),乘号不能省略。例,x,乘以,y,应写成:,x,*,y,(3),括号必须成对出现,均使用圆括号。,(4),表达式从左到右在同一基准上书写,无高低、大小。,3.,不同数据类型的转换,运算结果的数据类型向精度高的数据类型靠,.,IntegerLongSingleDouble,字符运算符,关系运算符,逻辑运算,测试,:,本章目录,86,例:用人单位招聘秘书:年龄小于,40,岁,女性,学历专科或本科,年龄,40 And,性别,=“,女”,And(,学历,=“,专科”,Or,学历,=“,本科”,),考虑:若分别写成:,年龄,40 And,性别,=“,女”,And (,学历,=“,专科”,And,学历,=“,本科”,),年龄,40 Or,性别,=“,女”,Or (,学历,=“,专科”,Or,学历,=“,本科”,),例:表示算术表达式:,正确的,VB,表达式:,3=x And x =7,错误的,VB,表达式:,3=x=7,或,3=x Or x=7,比,a,小,比,b,大 用,Or,a,小数,b,大数,a,小数,b,大数,比,a,大,比,b,小 用,And,87,表达式书写举例,a,*,b,*,c,*,d/e/f/g,或,a,*,b,*,c,*,d/(e,*,f,*,g),选拔优秀生的条件为:年龄,(Age),小于,19,岁,三门课总分,(Total),高于,285,分,其中有一门为,100,分,如果其表达式写为:,上一页,下一页,本章目录,Age285 And ( Mark1=100 Or Mark2=100 Or Mark3=100 ),如果取消括号有何问题?请读者考虑。,88,3.4 常用内部函数,上一页,下一页,VB,提供大量的内部函数供编程时调用。按其功能可分成数学函数、转换函数、字符串函数、日期函数和格式输出函数等。,通过帮助菜单,可获得所有内部函数的使用方法。,本章目录,89,3.4.1数学函数,上一页,下一页,VB,提供大量的内部函数供编程时调用。按其功能可分成数学函数、转换函数、字符串函数、日期函数和格式输出函数等。,-4,3,Int(-3.5),Int(3.5),取小于或等于,N,的最大整数,Int(,N,),2.3,Log(10),自然对数,Log(,N,),-3,3,Fix(-3.5),Fix(3.9),取整,Fix(,N,),20.086,Exp(3),e,x,Exp(,N,),1,Cos(0),余弦函数,Cos(,N,),3.5,Abs(-3.5),取绝对值,Abs(,N,),结果,实例,含义,函数名,本章目录,90,数学函数,上一页,下一页,0,Tan(0),正切函数,Tan(N),3,Sqr(9),平方根,Sqr(N),-1,Sgn(-3.5),符号函数,Sgn(N),0,Sin(0),正弦函数,Sin(N),-4,4,Round(-3.5),Round(3.5),四舍五入取整,Round(N),0,1),之间的数,Rnd,产生随机数,Rnd(N),结果,实例,含义,函数名,Rnd,函数,返回,0,和,1,(包括,0,但不包括,1,)之间的双精度随机数,.,每次运行时,要产生不同序列的随机数,先执行,Randomize,语句。产生,ab,的之间的随机整数:,Int(Rnd,*,(b-a)+a),本章目录,91,3.4.2 转换函数,上一页,下一页,ABC,Ucase$(abc),小写字母转为大写字母,Ucase(C),144,Oct$(100),十进制转换成八进制,Oct(N),123.45,Str$(123.45),数值转换为字符串,Str(N),123,Val(123AB),数字字符串转换为数值,Val(C),abc,Lcase$(ABC),大写字母转为小写字母,Lcase$(C),64,Hex(100),十进制转换成十六进制,Hex(N),A,Chr$(65),ASCII,码值转换成字符,Chr(N),2003-11-13,CDate(2003/11/13),转换成日期型,CDate,65,Asc(A),字符转换成,ASCI
展开阅读全文