版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualBasic
程序设计教程2
计算机应用遍及各行各业;
计算机用户的发展:专家专业人员普通用户
程序设计可以让计算机做任意你想做的事;1、有必要学习程序设计吗?32、为什么选择VisualBasic?大部分DOS平台下的程序设计语言都将被淘汰;其它语言可以实现的功能VB都能实现;VB是当今世界最流行的三大语言之一(VC、JAVA);
相对而言,VB比较容易掌握。4本课程学习要求强化实践这门课主张程序设计是高强度的脑力劳动,不是听会的、也不是看会的,而是练会的。这与以往的教学安排最大的不同突出重点重点放在思路、算法、编程构思和程序实现上。语句只是表达工具,要求堂上积极思考,尽量当堂学懂,重在培养分析问题和解决问题的能力。养成良好的编程习惯强调程序的可读性;变量要加注释;程序构思要有说明;学会如何调试程序;尽可能优化程序的算法;对运行结果要做正确与否的分析;5动手动脑,强调理论指导下的实践有条有理的实践。实践出真知“自学、动手、应用、上网”在编写大量程序之后,才能感到运用自如。学习方法6教学内容:第一章VisualBasic概述第二章创建用户界面第三章VisualBasic语言基础第四章算法基础及VisualBasic的基本语句第五章数组第六章程序调试第七章文件第八章过程第九章图形处理及多媒体应用(简单介绍)第十章数据库操作及编程(选择内容)第1章
VisualBasic概述8教学要求了解VisualBasic的简介;了解面向对象程序设计方法;了解事件驱动过程的程序设计原理;掌握VisualBasic的开发环境的常用工具(控件箱、窗体设计器、工程资源管理器、属性窗口和代码编辑窗口等)的使用和基本操作;掌握创建VisualBasic应用程序的一般步骤;掌握工程的建立、运行、调试方法掌握可执行文件的生成;91.1VisualBasic简介1.2面向对象的程序设计方法基础1.3事件驱动1.4VisualBasic的集成开发环境1.5创建VisualBasic应用程序的一般步骤1.6VisualBasic集成开发环境的基本操作
教学内容101.1VisualBasic简介
BASIC语言(BeginnersAll-purposeSymbolicInstructionCode初学者符号指令代码)BASIC语言的版本多达几百种,比较著名的有:GW-BASICTrueBASICQ-BASICQuickBASICVisualBASIC11
在Windows操作平台下,开发具有图形用户界面(GUI)的应用程序的强有力的工具之一;
以Basic语言为基础,易于学习、掌握;
具有可视化(Visual)编程的特性,即无需大量代码去描述界面的外观和控件的位置;
是包括界面设计、程序编码、调试、编译并创建可执行程序的集成开发环境IDE(IntegratedDevelopEnvironment);
引进了面向对象编程(OOP)的设计方法;
和微软公司软件之间的沟通较好;
全面支持Windows系统的对象嵌入与链接(OLE)技术;
强大的数据库功能;VisualBasic简介121、可视化(Visual)2、面向对象(ObjectOriented,OO
)VisualBasic和Windows是紧密结合的,它可直接调用Windows的系统资源,从而大大减少了软件开发难度,提高了开发效率。VisualBasic的两个重要的特点:13VisualBasic的发展91年,VisualBasic1.092年,VisualBasic2.093年,VisualBasic3.095年,VisualBasic4.097年,VisualBasic5.098年,VisualBasic6.0VisualBasic6.0是一个32位的软件开发环境,必须在Windows95或以上版本使用,开发出的应用软件也是32位的。14VisualBasic6.0的版本简介三种版本:
学习版(Learing)——面向初学者,包括VB的主要功能.
专业版(Professional)——提供一套功能完备的开发工具,包括ActiveX和Internet控件开发工具等.
企业版(Enterprise)——最高级的版本,针对小组环境中建立分布式应用程序的编程人员的版本,除专业版的全部功能外,包括VisualSourceSafe和AutomationandComponentManager等工具.151.2面向对象的程序设计方法基础
传统的面向过程的程序设计
是一种强调功能抽象化和模块化的编程方法,将解决问题的过程看作是一个处理过程。
设计思想:
描述一辆汽车动作的时候,着眼于汽车整体从一地到另一地的运动过程。
程序=数据结构+算法16
面向对象的程序设计(ObjectOrientedProgramming,OOP)是一种以对象为基础,以事件来驱动对象执行的程序设计技,将解决问题的过程看作是一个对象分类演绎的过程。
设计思想:
描述一辆汽车动作的时候,着眼于组成汽车的部件在各个时刻的状态,通过各部件状态的组合,确定整个汽车的工作特性和规律。
基本思想:
通过建立与具体实际应用相对应的对象,并通过这些对象的交互来创建具体的应用程序。
面向对象的程序设计17基本概念
对象(Object)
:是动作体的逻辑模型。是一个包括属性和方法的并被封装起来的整体。
类(Class):是对同一种对象的概括、抽象。用饼干模子和饼干之间的关系作比,饼干模子是类,它确定了所有饼干的特征,比如大小和形状,用类可以创建对象。对象就是饼干,对象是类的具体化,实例。
属性(Property):
指对象的性质、特征。
方法(Method):指对象能执行的动作。
事件():
指能够被对象识别的动作。18面向对象对象名人气球窗体属性姓名性别年龄学历色彩大小重量材料大小名称标题颜色方法呼吸哭笑爆破飞显示隐藏事件
挨打表扬针刺充气单击双击19面向对象程序设计的优点:符合人们的习惯思维方法。易于软件的维护和功能的增减。提高软件的开发效率。软件界面友好。20事件:对象能够识别并作出反映的外部刺激。事件驱动:又称消息驱动。过程化程序设计:按顺序一行一行执行代码,通过分支、循环和调用改变程序流程,执行次序完全由程序代码控制;事件驱动程序设计:也有相应的程序代码,仅在该事件发生时,才会被执行。事件发生的顺序决定了代码执行的顺序,因此每次执行应用程序时,程序代码并不是按照程序编写的顺序来执行的。1.3事件驱动过程的程序设计原理211.4VisualBasic的集成开发环境VisualBasic的开发环境VisualBasic是一个包括编辑、测试和程序调试等各种程序开发工具的集成工具开发环境(IDE)。VB的启动(1)通过[开始]菜单,[开始]→[程序]→[MicrosoftVisualStudio6.0]→[MicrosoftVisualBasic6.0];(2)在桌面上创建VB快捷方式后,双击快捷图标;(3)直接单击某工程文件名,可先打开VB,再打开该工程;VB的退出(1)单击关闭按钮;(2)双击控制菜单按钮;(3)执行[文件]菜单的[退出]项;22标题栏菜单栏工具栏控件箱工程资源管理器属性窗口窗体设计器窗体设计器代码编辑器“窗体布局”窗口VisualBasic用户界面1标题栏除了显示正在开发的工程名之外,还显示系统的工作状态。
设计态(Design):编辑代码和设计界面时的状态;
运行态(Run):运行应用程序时的状态;
中止态(Break):程序暂停执行时的状态;2菜单栏以菜单形式显示VB提供的所有功能命令3工具栏
由若干命令按钮组成,提供常用命令的快速访问,有标准、调试、窗体设计和编辑四类工具栏。工具栏的隐藏和显示由“视图”菜单的“工具栏”项进行。4窗体设计器
窗体是VB程序的最基本的对象,象一个容器,用来存放其它控件对象。5控件箱
显示系统提供的控件按钮,通常系统显示的为缺省控件。添加其它控件的方法如下:
在控件箱上单击右键
在弹出式菜单上选择“部件”项在“部件”窗口选择要添加的部件(复选框)6工程资源管理器和代码编辑器工程资源管理器:列出当前工程所包含的窗体和模块(查看对象和查看代码按钮)代码编辑器:编辑程序代码(两个列表框)7属性窗口显示指定窗体中指定对象的属性列表说明:属性窗口、工程资源管理器等由“视图”菜单控制是否在屏幕上显示。25
利用VisualBasic开发的应用程序被称为一个工程。在设计一个应用系统时,系统会建立一个扩展名-*为.vbp的工程文件。它是由窗体文件(.frm)、代码模块(.bas)、自定义控件(.ocx)及应用所需的环境设置组成的。
应用程序由两部分组成:1、用户界面——与用户进行交互的窗体;(窗体上安排有控件、菜单等对象)2、实际算法设计——完成信息处理的程序代码的设计,包括数据输入、处理变换、结果输出等。1.5开发应用程序的一般步骤26Control1Procedure1VisualBasic应用程序结构ApplicationProjectform1formnControlnProcedure1ProcedurenControl1ControlnProcedure
1proceduren……………Proceduren……应用程序工程窗体控件与过程271、创建界面:选择控件表达输入、输出;2、设置属性:调整控件属性,使窗体布局尽可能美观,使用尽可能方便;3、编写程序代码:进行信息处理等;4、保存工程:一个工程由窗体、代码模块、自定义控件及环境设置等组成;工程文件:vbp窗体文件:frm5、运行并调试程序:排除语法错误;排除逻辑错误;6、创建可执行文件;1.5创建VisualBasic应用程序的一般步骤281.6VisualBasic开发环境的基本操作
例1-1:在窗体上显示“你好!”和一个命令按钮,单击该按钮,文字变成“欢迎进入VB世界!”。[实现步骤]启动VB,系统自动创建工程1和窗体1(Form1)创建界面单击控件工具栏上的标签,将鼠标移到窗体上,光标呈十字形;按住鼠标左键,在窗体上拖动,这样就在窗体上放置了一个标签框;使用同样的方法,在窗体上放置一个命令按钮控件;调整控件大小和位置29设置属性标签:Autosize属性为True;Caption属性为“你好!”;Font属性为宋体三号字命令按钮:Caption属性为“确定”添加代码(两种方法)Label1.Caption=“欢迎进入VB世界!”保存,先保存窗体,再保存工程。运行和调试生成可执行文件[实现步骤]30代码输入规则
代码按行输入,一行代码输入完毕,换行输入下一行代码;
代码不区分字母大小写,(双引号内的字符串除外)
代码中除了中文字外,所有的符号都必须在英文状态下输入;’单引号后的内容为注释,不执行,只是对该行代码的文字说明,方便程序理解;31上机注意事项
编写代码时,一定要通过“对象”列表框选取对象,“过程”列表框选取过程,自动生成该对象的事件过程的框架;代码中,一定要注意控件的对象名与在属性窗口中设置的NAME属性一致。
保存时,先保存窗体,再保存工程;打开时,一定要打开工程文件,由工程调窗体。
不要在非VB以外的环境下,改变窗体文件的名称,否则工程中记录的信息无效,下次再打开工程文件时,将会出错,不能正常加载窗体。32九、使用帮助(help)
帮助信息对任何Windows下的系统都是至关重要的,学会使用帮助是较好地掌握该系统的前提。
“帮助”菜单中的“帮助主题”目录:在目录中查找所需的帮助信息;索引:键入所需帮助的关键词选中窗体中的控件,按F1功能键
在代码窗口选中需要帮助的关键词,按F1功能键第二章创建用户界面34
掌握窗体的常用属性、事件和方法以及多窗体和MDI窗体的概念;掌握常用控件:文本框、标签、命令按钮、列表框、组合框、图片框、单选按钮和复选框的常用属性、事件和方法;掌握菜单的制作和使用方法。教学要求35
2.1创建窗体
2.2VisualBasic的常用控件
2.3制作菜单教学内容36窗体:
窗体是VB应用程序的基本构造模块,用于创建VB应用程序用户界面或对话框,是包容各种控件对象的容器。由标题栏、边框以及客户区组成。2.1创建窗体372.1.1窗体的属性、方法与事件
Name(名称):窗体名称,在程序代码中,被作为对象的标识名,以识别不同的窗体对象,自行命名窗体时,必须以一个字母开头,可包含数字和下划线,不能包含空格和标点符号,长度小于40个字符。
Caption:窗体标题,是出现在窗体标题栏上的文本,缺省使用窗体名。BackColor与ForeColor:窗体的背景色与前景色BorderStyle:窗体边框风格。设定值及相关的VB内部常量及不同风格详见下表:1、常用属性38
常数设置值 描述vbBSNone0 无(没有边框或与边框相关的元素)vbFixedSingle1 固定单边框。可以包含控制菜单框,标题栏和关闭按钮,不能改变尺寸。vbSizable 2 可调整的边框。可以改变窗体大小。
(缺省值)vbFixedDouble3 对话框风格的窗体。大小不能改变。vbFixedToolWindow 4工具栏风格窗体。大小不能改变。vbSizableToolWindow5工具栏风格窗体。大小可变。
BorderStyle属性的六种设置值39
Enabled:活动属性。缺省值为”True”,当设置为”False”时,窗口及其上控件将不能被访问。
Left、Top、Height和Width:决定窗体位置与大小。Left和Top是窗体左上角的坐标(屏幕左上角为坐标零点);Height和Width是窗体的高度和宽度,单位均为特维;
Font:字体属性,设置窗体上正文字体、字型、字号等;
Visible:可见属性。缺省为“True”;当设置为“False”时,窗体隐藏,注意:此属性只在运行时生效。
Picture:背景图片属性。
Moveable:可移动属性,缺省为True,窗体在运行时可拖动,False时,不能拖动;窗体常用属性40在VB中,有两种设置窗体(或其他对象)属性值的方法。在设计时,通过属性窗口为其设定各种属性值;在程序执行过程中改变属性值,即通过程序代码改变属性值在程序代码中则使用如下格式的代码行来改变属性值:
Object.Property=Expression式中,Object是对象名;
Property是属于该对象的某个属性名;
Expression是为该属性赋予的值,必须和属性类型一致,即属性是字符型,表达式也应是字符型;属性是逻辑型,表达式也应是逻辑型。
例:Labe11.Caption="欢迎学习VB!“
Form1.Enable=False
Form1.Caption=Label1.Caption2.1.2定制窗体属性41窗体的常用方法
Show:显示方法。如:form2.Show
Hide:隐藏方法;如:form2.
HideMove:移动方法;如:form1.Move[left,top,width,height]Print:打印方法;
Cls:清除方法,清除窗体上所有打印的文本或图形
Refresh:刷新方法;通常窗体的刷新是自动进行的。
方法可使对象执行一个动作或任务。使用方法的格式是:
对象名.方法或对象名.方法[Arg1,Arg2,...]
后一种方法是带有参数的方法。窗体的常用方法42PrivateSubCommand1_Click()Diminchw,inchhinchw=Form1.Widthinchh=Form1.HeightMsgBox“将窗体移动到屏幕的左上角,同时尺寸缩小为原来的一半"Form1.Move0,0,inchw/2,inchh/2EndSub例:使用Move方法移动一个窗体,重新定位在屏幕左上角,尺寸缩小一倍。举例:43事件:能够被对象所识别的动作;
当某事件发生了,系统会自动执行其事件过程内的代码事件过程的一般格式:
PrivateSub对象名_事件名([参数表])(程序代码)
EndSub例如:窗体的常用事件
Click:单击事件;
DblClick:双击事件;
Load:装载事件;
Resize:在窗体被改变大小时,会触发本事件;
Activate:激活事件,当窗体变为当前窗口时,引发本事件;
Deactivate:失去激活事件,当窗体失去激活状态,即另一个窗体成为当前窗口时,引发本事件。PrivateSubForm_Click()’vb语句EndSub窗体常用事件442.1.3窗体的显示、隐藏、装载和卸载
1、窗体的显示与隐藏
2、装载窗体和Load事件
3、卸载窗体与Unload事件
4、End语句45(1)
显示窗体,可在程序中加入以下代码:
Formname.Show[Style]
其中:Formname是要显示的窗体名。
Show方法的Style参数决定窗体是有模式的(vbModel)还是无模式的(vbModeless)。有模式窗体不允许用户同时与应用程序的其他窗体交互,如Windows程序中的命令执行确认窗口;无模式窗体则允许用户与一个程序的其他窗口自由交互,如VB环境中的工程、属性和代码窗口等,缺省值是无模式1、窗体的显示与隐藏(2)隐藏窗体,可在程序中加入以下代码:
Formname.Hide
其中:Formname是要隐藏的窗体名。 46(1)编写事件过程时,建议不要自行输入程序框架,而应选定对象和事件过程,由系统自动产生框架。(2)命令按钮1的单击事件名为Command1_Click,命令按钮2的单击事件名为Command2_Click,但对于一个窗体,单击事件过程名为Form_Click,而不是Form1_Click,即窗体的事件过程中的对象名是FORM,而非具体的name属性值。例:单击窗体1,显示窗体2。
PrivateSubForm_Click()
Form2.ShowEndSub注意:472、装载窗体和Load事件
使用装载语句可把窗体(或其他对象)载入内存,但并不显示它。
装载语句的格式是:
LoadObject
其中:Object是窗体名(对象名)
由于VB应用程序在执行时,会自动装载启动窗体,所以没有必要对启动窗体使用Load语句。当系统装载窗体时,将引发窗体的Load事件;在使用Show方法显示窗体时,也会自动将尚未载入内存的窗体装入内存,并引发该窗体的Load事件。483、卸载窗体与Unload事件
使用卸载语句可把窗体(或其他对象)从内存卸载。
卸载语句的格式是:
UnloadObject
其中:Object是窗体名(对象名) 卸载将使该对象的所有属性重新恢复为设计态时设定的初始值;卸载还将引发对象的Unload事件。如果卸载的对象是程序唯一的窗体,则将终止程序的运行。一起来看个例子吧!494.End语句
在程序代码中可使用End语句结束程序运行,形式是:
End
执行该语句将终止应用程序的执行,并从内存卸载所有窗体。50格式:[Object.]Print<输出项表>功能:将输出项显示在窗体或图片框上。说明:(1)对象名缺省,则输出到窗体上;(2)输出项之间用逗号或分号间隔,若用逗号间隔,则为标准输出;若用分号间隔,则为紧凑输出。2.1.4Print方法PrivateSubcommand1_Click()Print1,2,3Print1;2;3PrintPrint"ab","cd"Print"ab;";"cd;"EndSub观察下列Print语句的执行结果。51多窗体程序设计当应用程序中有多个窗体界面时,设计时,同样先新建一个工程,其中有一个窗体form1,然后通过下列步骤,设计多窗体:1、添加并设计窗体
“工程”
“添加窗体”,再依次设计每一个窗体的界面元素以及相应的事件过程;2、设置启动窗体
“工程”
“工程属性”,在“通用”选项卡上,设置“启动对象”。注意:(1)在启动窗体中,必须要有对其他窗体的引用接口,可以是菜单命令或命令按钮的形式,否则其他窗体将无法显示。(2)多窗体应用程序保存时,先将每一个窗体以一个独立的窗体文件保存,扩展名为.frm,再保存工程文件。(3)多窗体应用程序打开时,直接打开工程文件,将会把该程序中所有的窗体文件都装载。52MDI(多文档界面)窗体
在多窗体应用程序中,一般有一个MDI窗体(框架,父窗体)构成外部容器窗口,再包括不同的子窗体构成内层窗体界面。创建MDI应用程序的步骤:1、“工程”
“添加MDI窗体”;2、将应用程序中其它窗体的
MDIchild
属性设置为“True”.3、将MDI窗体设置为启动窗体。注意:1、一个应用程序中,只有一个MDI窗体;2、在MDI窗体上,除PictureBox和Timer外,一般不能直接放置其他控件,3、关闭MDI窗体,将自动关闭所有打开的子窗体。4、运行时,子窗体只能在MDI窗体内移动。举例532.2VisualBasic的常用控件2.2.1概述
2.2.2常用控件54控件名功能Pointer指针用于改变控件大小和位置等PictureBox图片框显示图形或图象Label标签用于文字说明,显示提示性信息TextBox文本框用于字符输入Frame框架用于组合控件,将控件分组CommandButton命令按钮单击执行命令CheckBox复选框用于多项选择OptionButton选项按钮用于从多个选项中单选其一ComboBox组合框列表框与文本框的组合ListBox列表框列出多个选项供选择H.ScrollBar水平滚动条产生水平滚动条V.ScrollBar垂直滚动条产生垂直滚动条Timer计时器用于定时DriveListBox驱动器列表框DirListBox文件夹列表框FileListBox文件列表框Shape图形Line线条Image图象Data数据控件OLE控件基本控件55
VB通过控件箱提供了这些和用户进行交互的可视化部件,即控件。文本框(TextBox)标签(Label)命令按钮(CommandButton)列表框(ListBox)组合框(ComboBox)图象控件(Image)和图片框(PictureBox)选项按钮(OptionButton)、复选框CheckBox)与框架控件(Frame)滚动条控件(HScrollBar和VScrollBar)定时器控件(Timer)常用控件561.文本框(TextBox)[功能]:用于接收用户在框内输入的字符信息,或显示由程序代码产生的信息。[属性]:Name(名称):文本框的名称,Text:文本属性,该属性值就是用户在文本框输入的内容。(注意:TextBox无Caption属性)PasswordChar:口令属性。本属性缺省值为空字符串,表示用户由键盘输入的字符,直接在文本框中显示出来;如果该属性值为某个字符,则文本框中输入的内容均显示为该字符,用户看不见实际输入的字符,一般可用于口令输入。(如属性值设为*)
57MaxLength:最大长度属性。缺省为0,表示本文本框可以接收任意个字符。MultiLine:多行属性。本属性值若为“真”,则可输入多行文本;否则只能输入一行文本。该属性不能在程序中改变Scrollbars:在文本框中添加水平和垂直滚动条。0——无1——仅水平滚动条2——仅垂直滚动条3——均有Alignment:对齐属性,有三种选择0——(缺省值)文本左对齐。1——文本右对齐2——文本居中Left、top、Width、Height:相对于用户区的左上角位置。文本框前提是MultiLine为True[属性]:58[方法]:SetFocus:设置焦点,通过本方法可使光标指向指定的文本框。[事件]:Change:在文本框的Text属性,即文本的内容发生变 化时,就触发本事件;LostFocus:当光标离开文本框时,引发本事件。KeyPress:当焦点在文本框,并按下任何标准字符集的按键时会引发本事件。例:文本框文本框例:在窗体1中的文本框中输入口令,单击“判断”按纽,如口令正确,显示窗体2,否则,弹出提示错误窗口,单击“清空”按纽,清除文本框中的口令,并将焦点设置在其中以便下次录入。60PrivateSubCommand1_Click()IfText1.Text="cpu"Then form2_2.Show
Else MsgBox"sorry!youcan'tentertheform2!"
EndIfEndSub密码设置清空文本框,设置焦点PrivateSubCommand2_Click()Text1.Text=""Text1.SetFocusEndSub程序代码61PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenIfText1.Text="cpu"ThenForm2_2.ShowElseMsgBox"sorry!youcan'tentertheform2!",,"文本框"EndIfEndIfEndSub另外一种触发方式:622、标签(Label)[功能]:用于在窗体上增加文字说明。如用作窗体的状态栏,或为文本框、列表框等添加注释文字说明等。(1)属性
Name:标签名称;
Caption:标题属性。本属性值即为标签所显示的文本内容;
Alignment:对齐属性。缺省值为0,将Caption文本左对齐;若设为1,为右对齐;设为2,则为居中;
AutoSize:大小自适应属性,当取值为“True”时,标签大小会随实际显示的内容(Caption)而变化,缺省为“False”。
WordWrap:字折行属性。取值为“True”时,标签大小垂直扩展,即标题文字换行,为“False”时,则水平拓展,缺省“False”,该属性只有在AutoSize属性为“True”时才有效。63(2)方法
Refresh:刷新;
Move:移动。(3)事件
Click(单击)、DblClick(双击)(很少用及)注意:标签得不到焦点,所以无SetFocus方法例Label64PrivateSubCommand1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Label1.Left=Command1.LeftLabel1.Top=Command1.Top+Command1.HeightLabel1.WordWrap=FalseLabel1.AutoSize=TrueLabel1.BackColor=vbYellowLabel1.Visible=TrueLabel1.Caption="关闭窗体,结束应用程序"EndSub设置颜色使标签可见文本不换行例:窗体FORM1上有一个命令按纽“Close”,当鼠标光标移动动到该按钮上时,在按纽下方显示由LABEL1提供的提示行:背景色为“淡黄色”,文字为“关闭窗体,结束应用程序”。65PrivateSubCommand1_Click()UnloadMeEndSub除命令按钮外,鼠标在窗体其他位置移动时,并不出现标签提示PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Label1.Visible=FalseEndSub663、命令按钮(CommandButton)[功能]:
用户用鼠标单击命令按钮,就表示要执行一条命令,命令的具体功能则是由触发的单击事件过程中的程序代码决定。(1)属性Caption:标题属性。就是显示在按钮上的提示文字;Default:确定属性。当该属性为“True”时,按“回车键”等同于单击此按钮。在一个窗体中,也只能有一个命令按钮的该属性值为“True”.缺省值为“False”。Cancel:取消属性。当本属性值设为“True”(真)时,按“Esc”键即等同于单击本按钮;在一个窗体中,只能有一个命令按钮的该属性设置为“True”,缺省值为“False”;Enable:有效属性,当该属性为“False”时,命令按钮无效,不能响应用户事件,缺省为“True”。67(2)方法SetFocus:设置焦点。设置为焦点的按钮,标题周围将有一个边框,用户直接按“回车键”时,将会触发执行该按钮的单击事件。(3)事件
Click,即鼠标单击。这是命令按钮最基本、最重要的事件。书P23
例2-268例2-2一个使用命令按钮的程序示例PrivateSubCommand1_Click()Label1.Caption="报效祖国"Command2.Enabled=TrueCommand2.SetFocusCommand1.Enabled=FalseEndSub使按钮2变为活动状态PrivateSubCommand2_Click()Label1.Caption="努力学习"Command1.Enabled=TrueCommand1.SetFocusCommand2.Enabled=FalseEndSub使按钮1变为非活动状态使按钮2具有焦点704、列表框(ListBox)[用途]:列出可供用户选择的项目列表。
[属性]:List:表属性。用于保存列表内容。程序代码中,可通过表属性以及列表项序号实现对某具体列表项的访问:
[对象名.]List(列表项序号)
其中的对象名即为列表框的Name属性值;列表项的序号从0开始,由上到下依次为0、1、2、3...
列表框中的列表项的添加方法:一是设计时在属性窗口的LIST属性值中直接添加,二是在程序运行时,在代码中通过additem方法添加。ListCount:列表项数目。71ListIndex:列表项索引。其值为当前选中的列表项的序号,第一个列表项的序号为0,如果未选任何项目,则其值为-1;Text:列表项正文。其值为当前选中的列表项的文本,它与List(ListIndex)相同;
即List1.Text=List1.List(ListIndex)Columns:列属性。设置列表框中显示的列表项的列数。该属性缺省为0,只显示一列文本。逐行显示列表项,可能有垂直滚动条,取值为大于0的值时,列表项可占多列显示;Sorted:排序属性。取值为“True”时,各列表项将按字母表排序,取值为“False”时,将不排序。[属性]72[方法]:
AddItem
:添加列表项。使用下面的格式来添加:
[对象名.]AddItem<列表项文本>[,插入位置序号]
若不指定插入位置,则插入到列表末尾;
Clear
:删除列表中所有列表项。
RemoveItem
:删除指定列表项。用法如下:
[对象名.]RemoveItem删除项序号[事件]:
虽然列表框可以响应单击Click和双击DblClick事件。但很少使用。例:列表框73
界面如图所示,在文本框中输入内容,再单击“增加”命令按纽,可以将文本框中的内容添加至列表框中;对指定的列表框选项,单击“删除”可将其删除,同时及时更新列表项的总数。[属性]举例74PrivateSubCommand1_Click() List1.AddItemText1.Text Label3.Caption=List1.ListCountEndSubPrivateSubCommand2_Click()
List1.RemoveItemList1.ListIndex Label3.Caption=List1.ListCount Text1.Text="" Text1.SetFocusEndSub将文本框的内容添加至列表框中将列表框指定的选项进行删除列表数目显示在标签上75PrivateSubCommand3_Click()List1.ClearLabel3.Caption=List1.ListCountText1.Text=""Text1.SetFocusEndSubPrivateSubCommand4_Click()UnloadMeEndSub全部清除765、组合框(ComboBox)[功能]:将文本框和列表框结合在一起,在列表框中所选项目的文本会自动填入文本框。[属性]:
Style:外观属性。组合框的类型和功能由本属性设定值决定,各设置值的功能为(见下一页):
Text:文本属性。其取值就是用户从列表框中选定的文本内容或直接输入文本框中的内容。注意:组合框并不会自动地把用户在文本框中输入地内容作为一个新列表项添加到列表框中,须使用如下语句:
ComoBoxname.AddItemComoBoxname.Text[方法]:同列表框。[事件]:0和2风格的组合框可响应Click(单击)事件;风格1的组合框可响应DblClick(双击)事件;带有文本框的0和1风格的组合框在编辑文本时可引发Change事件。77ComboBox组合框Style属性的三种选择
常数 值 描述vbComboDropDown
0 (缺省值)下拉式组合框。包括一个下拉式列表和一个文本框。可以从列表选择或在文本框中输入。vbComboSimple
1 简单组合框。文本框和列表框部分一直显示在窗体上。可以从列表中选择或直接文本框中输入。应根据实际列表项数目,调整控件大小。vbComboDrop-DownList
2 下拉式列表。这种样式无文本框,不允许用户直接输入,仅允许从下拉式列表中选择。78组合框的外观79
界面如下,单击列表框中的选项,将之添加到组合框中,同时在组合框的文本框中输入内容,按回车也能添加至列表中。组合框列表框举例PrivateSubCommand1_Click()Combo1.AddItemList1.TextEndSubPrivateSubCombo1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then Combo1.AddItemCombo1.Text Combo1.Text=""EndIfEndSub将输入的内容添加至组合框将列表框指定选项移动至组合框PrivateSubCommand2_Click()Combo1.RemoveItemCombo1.ListIndexEndSubPrivateSubCommand3_Click()Combo1.ClearEndSubPrivateSubCommand4_Click()UnloadMeEndSub816、图象控件(Image)和图片框(PictureBox)图像控件(Image)[用途]:显示来自图形文件的图像。[属性]:Strech缩放属性:为True时,当图像的原始大小与控件大小不同时,会缩放图像来填充整个控件;为False时,自动控件大小来完整显示图片。BorderStyle边框属性:0时无边框,1时有边框。
Picture:图片属性,为要显示的图片的来源。可在设计时通过属性窗口设置,也可在代码中通过VB内部函数设置:
imagename.Picture=LoadPicture(“c:\pict1.bmp”)[方法]:Move:移动[事件]:Clickdbclick82[用途]:显示图形和文本,还可用于创建动画图形。[属性]:BorderStyle:边框属性。Align:对齐属性,指图片框在窗体上的位置。有无、上、下、左和右五种选择。
Picture:图片属性。设置同IMAGE控件AutoSize:为True时,当图片大小与控件大小不同时,会自动改变控件大小来与图像一致,为False时,则不会。[方法]:Move:移动;Print:打印Cls:清空图片框[事件]:Click、dbclick注意:PictureBox控件可作为控件容器,在其中放置如命令按纽、文本框等其它控件。举例图片框控件(PictureBox)837.选项按钮(OptionButton)、复选框(CheckBox)与框架控件(Frame)单选按钮(OptionButton)[用途]:从一组互斥的选项中选择一个。[属性]:
Caption:标题属性。
Value:取值属性。单选按钮选中时,该属性值为“True”,否则为“False”[方法]:Move、Refresh、Setfocus等[事件]:Click注意:一般情况下,在一组单选按钮中可设置一个按钮为“缺省”按钮,即它的Value属性初始状态为“True”,根据这个设定设置整个应用程序的初始状态。84复选框(CheckBox)[用途]:从一组选项中选择一个或多个。[属性]:
Caption:标题属性。
Value:取值属性,表示复选框的状态,有三个选择(0——未选中、1——选中、2——当前不能访问),注意与单选按纽不同。Alignment:对齐属性。[方法][事件]:同单选按纽。85
在窗体上可以容纳若干个选项组。可利用框架控件或前已述及的图片框控件,作为选项组的“包容器”,把各个选项组区分开来[用途]:作为控件容器,将控件分组。[属性]:
Caption:标题属性。[方法]:Move:移动[事件]:Click:单击注意:若窗体上有互不相干的多组单选按钮,未防止选择时,他们之间相互干扰,必须将他们分组,分别放置在不同的框架(Frame)中。步骤:1先在窗体上拖放一个框架控件,并选定该框架为当前对象;2在框架中直接绘制该组中的各个按纽控件;3若分组成功,则拖动框架时,包括其内部的控件一起移动。复选框框架(Frame)86
界面如图所示,在窗体上使用框架分别建立一组复选按钮和二组单选按钮,用户在进行选择时,文字的字体字号和风格也能发生相应的变化。例2-4:87PrivateSubCheck1_Click()IfCheck1.Value=1ThenText1.FontItalic=TrueElseIfCheck1.Value=0ThenText1.FontItalic=FalseEndIfEndSub斜体粗体PrivateSubCheck2_Click()IfCheck2.Value=1ThenText1.FontBold=TrueElseIfCheck2.Value=0ThenText1.FontBold=FalseEndIfEndSub88[程序说明]:因为复选框的单击结果有两种,所以在程序中使用了判断结构。而单选按钮则不存在这种情况,单击就是选定。PrivateSubOption1_Click()Text1.FontSize=12EndSubPrivateSubOption2_Click()Text1.FontSize=14EndSubPrivateSubOption3_Click()Text1.FontSize=16EndSubPrivateSubOption4_Click()Text1.FontName="宋体"EndSubPrivateSubOption5_Click()Text1.FontName="隶书"EndSubPrivateSubOption6_Click()Text1.FontName="黑体"EndSub898、滚动条控件(HScrollBar和VScrollBar)[用途]:滚动条主要用于列有较长项目或者大量信息的地方。使用户在较小的区域中浏览较长的项目和信息。(用于需要浏览信息,但又不支持滚动功能的控件。)(1)属性Value:对应于滚动框在滚动条中的相对位置。最小:水平:左;垂直:上Max和Min:设定滚动条Value属性的取值范围;(缺省:0——32767)LargeChange:在滚动条的空白区域单击鼠标,Value的变化量SmallChange:鼠标单击滚动条两端箭头时,Value的变化量(2)方法
Move(3)事件Change:滚动条不支持单击事件,当Value值发生变化时,触发本事件。举例90例:通过红,绿,蓝三基色合成各种颜色91PrivateSubchangecolor()Text1.BackColor=RGB(HSbred.Value,HSbgreen.Value,HSbblue.Value)EndSub定义通用过程调用过程Changecolor在标签上显示此时红绿蓝三色的初值,均为0PrivateSubForm_Load()changecolorLabel1.Caption="红"&HSbred.ValueLabel2.Caption="绿"&HSbgreen.ValueLabel3.Caption="兰"&HSbblue.ValueEndSub92PrivateSubHSbblue_Change() Label3.Caption="兰"&HSbblue.Value changecolorEndSub改变文本框颜色显示PrivateSubHSbgreen_Change() Label2.Caption="绿"&HSbgreen.Value changecolorEndSubPrivateSubHSbred_Change() Label1.Caption="红"&HSbred.Value changecolorEndSub939、定时器控件(Timer)[用途]:通过设置时间间隔,当经过设定的时间后,自动触发该控件的Timer事件,执行其中的代码程序。[属性]:Interval:以毫秒为单位的时间间隔。取值为0-65535。0表示不起作用。Enable:为True时,打开计时器,开始计时,根据Interval值,触发Timer事件;为False时,关闭计时器。[事件]:Timer:计时器唯一支持的事件,当设定时间间隔到达后,触发。注意:窗体上的计时器,在运行时是不可见。Timer94例:窗体上有一标签,单击“开始”按纽后,该标签在窗体上水平滚动。PrivateSubTimer1_Timer()IfLabel1.Left+Label1.Width>Form1.WidthThenLabel1.Move0ElseLabel1.MoveLabel1.Left+50EndIfEndSubPrivateSubCommand2_Click()Timer1.Enabled=FalseEndSubPrivateSubCommand1_Click()Timer1.Enabled=TrueEndSub962.3制作菜单2.3.1菜单概述2.3.2使用菜单编辑器2.3.2界面设计程序示例2.3.4使用帮助97菜单概述菜单条/菜单栏:位于窗体的标题栏下,包括菜单的标题;菜单/下拉式菜单:单击菜单标题,出现的命令列表;菜单项:菜单命令;子菜单:从一个菜单项分支出来的菜单;弹出式菜单:右键快捷菜单。98打开菜单编辑器对话框:“工具”“菜单编辑器”标题:菜单标题,直接显示在菜单中;若为菜单分隔线,则标题为“-”,如要设置菜单访问键,在菜单标题中加上“&”+字母,运行时,显示为字母,按Alt+字母可打开该菜单。名称:菜单标识,不可省略快捷键:
一般为Ctrl+字母,指直接执行该菜单项的键盘快
捷键。复选属性:指定可切换的菜单项的开关状态有效属性:缺省为“True”,若为“False”则该菜单项变为
灰色,不能响应事件可见属性:缺省为“True”,若为“False”则该菜单项包括其子菜单在菜单栏上均不可见箭头:
菜单项的升降级和次序的调整VB将菜单也视为控件对象,若要单击菜单执行某命令,则须在代码窗口编辑该菜单对象的Click事件中的。菜单编辑器99弹出式菜单
弹出式菜单的建立和下拉菜单一样,都是通过菜单编辑器来完成的,但弹出式菜单要将菜单的Visible属性设置为“False”,并需要通过增加程序代码来实现。例:设置窗体的弹出式菜单。[程序代码]:
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenForm1.PopupMenuhhEndSub第三章VisualBasic语言基础101
了解过程和模块的概念
掌握程序书写规范和程序注释方法
掌握各种数据的定义、使用及表示范围
掌握各种运算符和表达式的使用
掌握常用的标准函数教学要求1023.1VB程序代码的组织结构3.2代码行的书写规则3.3VB的数据类型3.4运算符与表达式3.5VB公共函数教学内容1033.1VB程序代码的组织结构VB程序是由界面和程序代码两部分组成,而程序代码又是由说明部分和过程两部分组成的,要编写控制程序执行的代码,必须先了解过程这个概念。1043.1.1过程
所谓过程,就是由Sub开头,EndSub结尾的,包含若干条语句的有特定书写格式的代码组合。
根据过程执行的方式,可分为事件过程和通用过程两类。
105事件过程定义:由事件驱动而执行的,用于响应用户或系统引发的事件的代码过程。如窗体的Load过程、命令按钮的Click过程等。特点:缺省情况下,事件过程是Private的,即仅在所属的窗体范围内有效。存储:事件过程是存储在窗体模块文件中,扩展名为.frm注意:事件过程的过程名及参数是系统定义好的,其参数不得随意改变。106通用过程:定义:可以被多个窗体和过程调用执行的代码过程。特点:缺省情况下,通用过程是Public的,即可被所有窗体共享,但也可以定义成Private。存储:在窗体中定义的通用过程直接存储在窗体模块文件中;在标准模块中定义的通用过程是存储在扩展名为.Bas的标准模块文件中。注意:通用过程的过程名及参数由用户自行定义。1073.1.2模块
模块是组织过程代码的一种结构。VB提供了三种类型的模块:窗体模块、标准模块和类模块。
窗体模块:和每个窗体相对应的模块,包含窗体及其中所有控件的属性设置、相关说明和所有事件过程。
标准模块:存放为多个窗体所共享的通用过程的独立代码模块,不属于任何一个窗体,主要在大型应用程序中使用,保存在扩展名为.Bas的文件中。
类模块:存放开发者自行创建的类的属性、方法等。
108VB应用程序窗体文件标准模块文件声明部分事件过程通用过程全局声明部分模块声明部分通用过程类模块文件1093.2VB程序的书写规范和程序注释一、语句VB程序的最基本的成分
格式:<语句定义符>[语句体]
按行书写;
一个语句可通过续行符号“
_”(一个空格加一个下划线)分成多行写;
多个语句也可以通过分行符号“:”(冒号)写在一行上。110二、书写规范字母无大小写区分一行代码输入完毕,按回车键进入下一行一般采取阶梯型书写格式,使程序可读性好,便于查找错误(严格执行)代码中除了中文字外,所有的符号都必须在英文状态下输入三、程序注释语句[格式一]:Rem<注释字符>[格式二]:’<注释字符>[说明]:给程序加注释,增强程序的可读性,该语句为非执行语句。1113.3VB数据类型
3.3.1数据类型3.3.2常量3.3.3变量112取值范围见P43表3-13.3.1数据类型
Integer:整型数,2个ByteLong:长整型数,4个ByteSingle:单精度数,4个Byte7位有效位Double:双精度数,8个Byte15位有效位Currency:货币型,8个Byte精度高,15个整数和4个小数Byte:Byte型数,1个Byte(一般存储二进制信息)Boolean:逻辑型,2个ByteTrue或FalseString:字符串型,分为定长和不定长两种Date:日期型,8个ByteObject:对象型,4个Byte保存对某对象的引用(内存地址)Variant:变体型,16个Byte
存放无小数的整数存放有小数的实数1133.3.2常量(Constant)指在程序运行过程中值保持不变的量,分为直接常量和符号常量两种。1、数值常量由正负号、数字和小数点组成,正数的正号可以省略科学计数法格式:<尾数>e/d<指数>说明:幂为10,e为单精度,d为双精度八进制和十六进制常量表示无符号整数八进制:&O十六进制:&H12,-3,32767174567,-4567891.5,-7.891,1e6,2.33455e-33.1415926535,1.2d4&O137,&H1271142、字符常量用双引号将一串字符括起来,构成字符常量字符长度:字符串中字符的个数,不包括双引号字符串的长度最多可达65535个注意区别空格串和空串输入双引号必须用“””字符串常量区分大小写,如字符串"A"和字符串"a"是两个不同的常量字符串比较:从字符串的左端开始,一一对应比较至不同的字符,字符的ASCII码值大的字符串大,ASCII码值小的字符串小。
如:“欢迎进入VB”,“VisualBasic”,“123”,“A”1153、逻辑常量只有两个取值,True和False无界定符Vb中通常用0表示False,其他数值均表示True4、日期时间型常量即可以表示日期,也可以表示时间一般表示形式是mm/dd/yy,hh:mm:ss用#作为界定符例:#1/2/1999##1999-1-2##Jan2,1999##January2,1999##12:00:00AM##12:00:00PM##8:20:20PM##2:00:00PM#都合法116符号常量是指以符号形式,即常量名来标识的常量若一个常量在程序中使用频率较高,可以将其定义为一个符号常量,如圆周率常量名长度不超过255个字符,由字母开头,只能包含字母、数字和下划线,且不区分大小写符号常量必须先说明后使用符号常量117说明语句格式:[Public|Private]Const<常量名>[AsType]=<表达式>在模块通用声明中,Public和Private用于定义常量的使用范围,缺省为Private(窗体模块级)在窗体模块中不能用Public定义全局符号常量表达式中不能包括函数,可使用除IS外所有算术和逻辑运算符,也可以使用其他常量例:ConstpiasSingle=3.14159PrivateConstch=“CPU”PublicConstxasInteger=3*5’在标准模块中定义全局级常量,但若出现在窗体的通用声明中则出错。注意符号常量定义后,在程序中只能读不能修改
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 进行性延髓麻痹病因介绍
- T-CIE 232-2024 液气换热型水冷板式间接液冷数据中心设计规范
- 中考地理总复习七下第七章了解地区第九课时教材知识梳理
- 呼吸道职业暴露
- (报批版)塑料造粒环评报告书
- 商务励志工作报告汇报模板33
- 重庆2020-2024年中考英语5年真题回-教师版-专题01 语法选择
- 云南省曲靖市沾益区2024-2025学年七年级9月月考道德与法治试题(解析版)-A4
- 2023年汽车电喷项目融资计划书
- 2023年变压器、整流器和电感器项目融资计划书
- 新教材人教A版高中数学选择性必修第一册全册教学课件
- IEC60335-1-2020中文版-家用和类似用途电器的安全第1部分:通用要求(中文翻译稿)
- 《HSK标准教程1》-HSK1-L8课件
- 幼儿园小班绘本:《藏在哪里了》 课件
- 上册外研社六年级英语复习教案
- 替班换班登记表
- 社会保险法 课件
- 阿利的红斗篷 完整版课件PPT
- 桥梁工程挡土墙施工
- 供应商质量问题处理流程范文
- 实验室生物安全手册(完整版)资料
评论
0/150
提交评论