关闭

关闭

关闭

封号提示

内容

首页 金文老师VB教程

金文老师VB教程.doc

金文老师VB教程

你旳妩媚你旳情 2017-10-13 评分 0 浏览量 0 0 0 0 暂无简介 简介 举报

简介:本文档为《金文老师VB教程doc》,可适用于综合领域,主题内容包含金文老师VB教程目录第一章VisualBasic程序开发环境第一节VisualBasic的启动与退出一启动VB的四种方法:二VB启动后的简单设置第二符等。

金文老师VB教程目录第一章VisualBasic程序开发环境第一节VisualBasic的启动与退出一启动VB的四种方法:二VB启动后的简单设置第二节主窗体的组成第三节其他窗体一窗体设计器和工程资源管理器窗体设计器窗口工程资源管理器窗口选项卡的切换二属性窗口和工具箱窗口属性窗口工具箱窗口第一节对象一VB的属性什么是对象对象属性对象事件对象方法二对象属性设置第二节窗体一窗体的结构与属性二窗体事件第三节控件一(控件的分类二(启动VB后工具箱列出的内部控件三(控件值第一节VB中的语句一VB语句的几点说明赋值语句注释语句结束语句第二节编写简单的VB应用程序一(VB开发应用程序的一般步骤二(编写VB应用程序三(代码编辑器第三节程序的保存、装入和运行一(保存程序二(程序的装入三(程序的运行第四章常量和变量第一节数据类型一基本数据类型二用户定义的数据类型目录第二节常量和变量一(文字常量二符号常量三(变量命名规则变量的类型和定义记录类型变量第三节变量的作用域一(局部变量二(模块变量(窗体变量和标准模块变量)三(全局变量四(变量的作用域五(默认声明第四节(常用内部函数第五节字符串处理与字符串函数第五章运算符与表达式第一节算术运算符第二节关系运算符与逻辑运算符一(关系运算符,二(逻辑运算符三(表达式的执行顺序第六章数据的输入输出第一节,数据的输出Print方法一Print方法,二与Print方法有关的函数三格式输出四其它方法和属性Cls方法Move方法第二节数据输入Inputbox函数一格式二注意事项第三节Msgbox函数一(Msgbox函数Type参数的取值Type返回值二(Msgbox语句第四节字形一(字体的类型和大小二(其它属性第七章常用标准控件第一节(文本控件一(标签二(文本框目录文本框属性:文本框的事件和方法:第二节(图形控件一(图片框和图象框二(图形文件的装入三(直线和形状第三节(按钮控件属性和事件第四节(复选框和单选框复选框和单选框的属性和事件第五节(列表框和组合框一(列表框(属性(列表框事件(列表框的方法二(组合框(组合框属性(组合框事件(组合框方法第六节(滚动条一(滚动条属性二(滚动条事件第七节(计时器第八节(框架第九节(焦点与TAB顺序焦点(Tab顺序第八章VB控制结构第一节(选择控制结构一(单行结构条件语句二(块结构的条件语句三(IIF函数第二节(多分支控制结构程序一直被挂起直到用户对消息框作出反应才继续工作系统强制返回全部应用程序被挂起直到用户到消息框作出响应Type返回值常数值描述VBOKOK(选“确定”按钮)VBCancelCancel(选“取消”按钮)VBAbortAbort(选“终止”按钮)VBRetryRetry(选“重试”按钮)VBIgnoreIgnore(选“忽略”按钮)VBYesYes(选“是”按钮)VBNoNo(选“否”按钮)二(Msgbox语句(Msgbox语句没有返回值)(格式:(与Msgbox函数的格式一致)Msgboxmsg$,type,title$,helpfile,context第四节字形一(字体的类型和大小(字体的类型通过Fontname属性设置一般形式为:窗体控件Fontname=”字体类型”字体的大小通过Fontsize属性设置一般形式为:窗体控件Fontsize=点数默认点数为:二(其它属性(粗体字由Fontbold其格式为:窗体控件Fontbold=Boolean第六章数据的输入输出(斜体字通过FontItalic属性设置其格式为:窗体控件FontItalic=Boolean(加删除线格式为:窗体控件Fontstrikethru=Boolean(加下划线格式为:窗体控件FontUnderline=Boolean第七章常用标准控件第七章常用标准控件第一节(文本控件与文本有关的控件有二个即标签和文本框在标签中只能显示文本不能进行编辑而在文本框中即可显示文本也可输入文本一(标签(标签主要用来显示文本信息它所显示的内容只能用Caption属性来设置或修改不能直接编辑有时候标签常用于来标注本身不具备有Caption属性的控件例如:可以用标签为文本框列表框组合框等控件附加描述信息(标签的属性事件和方法)标签的部分性性与窗体及其它控件相同包括:Fotnbold,FontItalic,Fontname,FontSize,FontUnderline,Height,Left,Name,Top,Visible,width)其它属性)Alitnment(该属性用来确定标签中的标题放置方式可以设置为:或。其作用如下:从标题的左边开始显示标题(默认)标题靠右显示标题居中显示()Autosize:如果把该属性设置为True则可根据Caption属性指定的标题自动调整大小如果把该属性设置为False则标签保持设计时的大小()Boderstyle:用来设置标签的边框可以取二个值即便和在默认情况下该属性值为标签无边框如果需要为标签加上边框则应改变该属性的设置为()Caption:用来在标签中显示文本标签的文本只能用Caption属性来显示()Backstyle:该属性可取二个值即和当值为时标签将覆盖背景如果为则标签为“透明”的默认值为()Wordwrap:该属性用来决定标签的标题的属性的显示方式该属性取二种值即True和False默认为False,如果设置为True则标签将在垂直方向变化大小以与标题文本相适应水平方向的大小与原来的所画的标签相同如果设置为False则标签将在水平方向上扩展到标题中最长的一行在垂直方向上显示标题的所有行为了使Wordwrap起作用应把Autosize属性设置为True输入技巧:当有空格的情况下在一定长度时自动换行二(文本框第七章常用标准控件文本框是一个文本编辑区域在设计阶段或运行期间可以在这个区域中输入、编辑和显示文本类似于一个简单的文本编辑器文本框属性:前面介绍的一些属性也可以用于文本框这些属性包括:Bordbled,Fontbold,FontItalic,Fontname,Fontsize,FontUnderline,Height,Left,Top,Visible,width,此外还具有如下属必)Maxlength:用来设置允许在文本框中输入的最大字符数一般不需要更改默认设置(不能超过K))Multiline:如果把该属性设置为False则在文本框中只能输入单行文本当属性设置为True时可以使用多行文本按CtrlEnter可以插入一个空行)Passwordchar:该属性用于中令输入(通常用于密码的输入))ScrollBars:该属性用来确定文本框中有没有滚动条可以取四种值四个值其含义为:文本框中没有滚动条只有水平滚动条只有垂直滚动条同时具有水平和垂直滚动条。注意:只有当Multiline属性设置为True时才能用ScrollBars属性在文本框中设置滚动条加入水平滚动条后文本框自动换行功能将不起作用只能通过回车换行)Sellength:当在文本框中选择文本时该属性值会随着选择字符的多少而改变也可以在程序代码中把该属性设置为一个整数值由程序来改变选择。如果Sellength属性值为则表示示选项中任何字符)Selstart:定义当前选择文本的起始位置表示先择的开始位置在第一个字符之间表示从第二个字符之间开始选择依次类推)Seltext:该属性含有当前所选择的文本字符串如果没有先择文本则该属性含有一个空字符串如果在程序中设置Seltext属性则用该值代替文本框中选中的文本)Text(控件值):该属性用来设置文本框中显示的内容)Locked(锁定):该属性用来指定文本框是否可被编辑当设置为False(默认)时可以编辑文本框中的内容(文本)当设置为False时可滚动和选择控件的文本但不能编辑。文本框的事件和方法:文本框支持Click(单击)DblClick(双击)同时支持Change(更改),GotFocus(得到焦点),LostFous(失去焦点)等事件。)Change:当用户向文本框中输入新信息时或当程序把Text属性设置为新值时从而改变文本框的Text属性时将触发Change事件)Gotfous:当文本框具有输入焦点(即处于活动状态)时键盘上输入的每个字符都将在该文本框中显示出来)LostFous:当按下TAB键使光标离开当前文本框或者用鼠标选择窗体中的其它控件时将触发该事件)SetFocus:该方法是文本框中较常用的方法格式如下:对象SetFocus该方法可以把输入光标移动到指定文本框中第二节(图形控件第七章常用标准控件一(图片框和图象框图片框比图象框更灵活且适用于动态环境而图象框比较适用于静态情况即不需要再修改位图、图标、Windows元文件及其它格式的图形文件(与窗体相同的属性:Endbled,Name,Visible,Fontbold,FontItalic,Fontname,Fontsize,FontUnderline,Autoredraw(自动刷新),Heiht,Left,Top,Width(Currentx和Currenty属性:用来设置下一个输的水平或垂直的坐标而二个属性只能在运行期间使用。格式如下:对象Currentx=x对象Currenty=y(Picture属性:该属性用于窗体、图片框和图象框它可以通过属性窗口设置用来把图形放入这些对象中在窗体、图片框、图象框中显示的图形以文件形式存放在磁盘上。VB支持以下格式的图形文件:Bitmap(位图)Icon(图标)Metafile(图元)JPGE(压缩格式)JIF(Stretch属性:该属性用于图象框用来自动调整图象框中图形内容的大小它即可通过属性窗口设置也可通过程序代码设置该属性的取值为True或False当其值为True时将自动放大或缩小图象框中的图形以与图象框的大小相适应。它与图片框的Autosize属性的区别:Autosize:是调整图片框的大小来适应图象。Stretch:是调整图象的大小来适应图象框二(图形文件的装入(图片框与图象框的区别:图片框和图象框的用法基本相同但有以下区别:)图片框是容器控件在图片框中可以包含其它控件而其它控件不能“属于”一个图象框)图片框可以通过Print方法接收文件而图象框不能接收用Print方法输入的信息每个图片框都有一个内部光标(不显示)用来指示一下个将被绘制点的位置这个位置就是当前光标的坐标通过CurrentX和CurrentY属性来记录)图象框比图片框占用的内存少显示速度快)图象框是图片的大小来适应图象框而图片框是图片框来适应图片(在设计阶段装入图形文件(允许把一个图片赋给另一个控件))用属性窗口的Picture属性装入)在运行期间装入图形文件格式为:对象Picture=LoadPicture(“文件名”)“文件名”指:“图片路径(完整路径)”以及“图片名扩展名”。“空串”清空图片第七章常用标准控件三(直线和形状直线和形状的属性直线和形状具有Name和Visible属性形状还具有Height,Left,Top,Width等标准属性直线具有XY和X,Y。分别表示直线两个端点的坐标。即(X。Y)和(X。Y)此外直线和形状还具有以下属性)BorderColor:该属性用来设置形状和直线的颜色)Borderstyle(默认值为:):该属性用来确定直线或形状的边界线的线型可以取以下七种值:透明实线虚线点线点划线双点划线内实线。当该属性值为时控件实际上是不可见的)BorderWidth:该属性用来指定直线的宽度或形状边界线的宽度该属性不能设置为默认以像素为单位)Backstyle:该属性用于形状控件其设置为或用来决定形状是否补指定的颜色填充(设置图形是否透明)边界透明边界用指定颜色填充)FillColor:该属性用来定义形状的内部颜色使用时必须保证FillStyle属性值不为)FillStyle:该属性的设置决定的形状控件内部的填充图案可以取以能下种值:实心透明水平线垂直线向上对角线向下对角线交叉线对角线)Shape:该属性用来确定所画形状的几何特性它可以被设置为种值:矩形(默认)正方形椭圆形圆形四角圆化的矩形四角圆化的正方形第三节(按钮控件属性和事件(Cancel属性:当一个命令按钮的Cancel属性被设置为True时按Esc键与单击该按钮的作用相同在一个窗体中只允许一个命令按钮的Cancel属性被设置为True第七章常用标准控件(Default:当一个命令按钮的Default属性被设置为True时按回车键和单击该命令按钮的功能相同在一个窗体中只能有一个命令按钮的Default属性被设置为True(Style属性:标准样式图形格式控件有图形样式显示面命令按钮中不仅显示文本而且可以显示图形(Picture属性:用该属性可以给命令按钮指定一个图形为了使用这个属性必须把Style属性设置为(图形格式)否则Picture属性无效(DownPicture:该属性用来设置当按件被单击并处于活动状态时在控件中显示的图形必须把Style属性设为(DisabledPicture属性:该属性用来设置当命令按钮为禁用时按钮上的图形必须把Style属性设为注:在设计阶段可以从属性窗品中设置命令按钮的Picture、DownPicture、DisabledPicture属性也可以通过LoadPicture函数装入图形命令按钮不支持双击事件第四节(复选框和单选框复选框和单选框的属性和事件以前介绍的大多数属性都可用于复选框和单选框按钮抱括:Caption、Endbled、Fontbold、FontItalic、Fontname、Fontsize、Fontunderline、Height、Left、Top、Visible、Width和命令按钮一样对复选框和单选按钮可以使用Picture、DownPicture和DisabledPicture属性此外还可以使用下列属性:(Value属性:(单选按钮有一个是必须要选项中的)Value属性用来表示复选框和单选框的状态对于单选按钮来说Value属性可以设置为Ture或False当设置为Ture时该单选按钮是“打开”的按钮中心有一个圆点如果设置为False时赐教该单先按钮是“关闭”的按钮中心是一个圆圈对于复选框来说Value属性可以设置为表示没有选择该复选框表示选中该复选框表示复选框被禁止(程灰色状态)(Alignment属性:该属性用业设置复选框或单选框控件标题的对齐方式它可以在设计时设置也可以在运行期间设置格式为:对象Alignment=值(默认)标题在控件的右侧显示控件居右标题在控件的左侧显示(Style属性)该属性用来指定复选框或单选按钮的显示方式以更改视觉效果:(默认)标准方式第七章常用标准控件图形方式控件用图形的样式显示即复选框或单选扫钮的按钮与命令按钮类似)在使用Style属性时要注意以下几点Style是只读属性只能在设计时使用当Style属必为时可以用Picture,DownPicture和DisabledPicture属性分别设置不同的图标和位图以表示示选定、选定和禁用Style属性被设置为不同值时其外观也不一样当该属性值为时控件的外观类似于命令按钮但其作用与命令按钮不一样的(复选框和单选按钮可以接受Click事个但通常不对复选框和单选按钮的Click事件进行处理当单击复选框或单选按钮时将自动改换其状态一般不需要编写Click事件过程第五节(列表框和组合框一(列表框(属性Colunms:该属性用来确定列表框的列数当该属性值设为(默认)时所有的项目成单列显示如果该属性为大于则列表框呈多列显示的列数列表框水平滚动该属性用来列出表项的内容List属性保存了列表框中所有值的数组可List:以通过下标访问数组中的值(下标值从开始)其格式为:S$=列表框List(下标)Listcount:该属性列出列表框中的有项数量列表框中表项的排列从开始最后。(用于测试有多少项)一项是的序号为ListcountListIndex:该属性的设置值是已选中的表项的位置表项位置由索引值指定第一项的索引值为第二项为依次类推如果没有选中任何项ListIndex的值将会设置为MultiSelect:该属性用来设置一次可用的表项数对于一个标准列表框该属性的设置决定了用户是否可以在列表框中选择多个项目。MultiSelect可以设置成以下三个值:每次只能选择一项可以同时选择多个项后续的选择不会取消前面所选择的项可用鼠标或空格选择可以选择指定范围的表项其方法是:单击所要选择的第一项然后按下Shift键不要松开单击所要选择范围的最后一项如果按住Ctrl键并单击列表框中的项目则可不连续的选择多个项目如果选择多个表项ListIndex和Text属性只表示最后一次的选择值为了确定所选择的选项必须检查Selected属性的每个元素第七章常用标准控件Selected:该属性实际上是一个数组各个元素的值为True和False每个元素与列表框的一项对应当元素的值为True时表明选择了该项如果为False则表示未选择用下面的语句可以检查指定的表项是否被选择:列表框Selected(索引值)=Boolen注:索引值即下标Selcount:如果Multiselect属性设为或则该属性用于读取所选项的数目。(选中多少项)Sorted:如果Sorted属性设为True则表项按字母数字升序排列如果把它设为False(默认)则按添加列表框的先后次序排列Style:这个属性用于确定控件的外观只能在设计时确定其值可以设置为(标准样式)和(复选框样式)Text:该属性的值为最后一次选中的表项文本不能直接修改Text属性(列表框事件列表框接受Click和DblClick事件但有时不用编写Click事件过程代码而是当单击一个命令按钮或发生DblClick事件时读取Text属性(列表框的方法AddItem:该方法用来在列表框中插入一行文本其格式为:列表框AddItem项目字符串索引值注:当不写索引值时默认为最后一项Clear:该方法用来清除列表中全部内容RemoveItem:该方法用来删除列表框中指定的项目格式为:列表框RemoveItem索引值注:RemoveItem方法从列表框中删除以“索引值”为地址的项目该方法每次只能删除一个项目实例讲解二(组合框组合框是组合列表框和文本框而成的控件它兼有列表框和文本框的功能(组合框属性列表框的属性基本可以用于组合框此外它还有自己的属性)Style这是组合框的一个重要属性其取值为。它决定了组合框的三种不同类型下拉式组合框可以输入文本或从下拉列表中选择表项简单组合框如果项目的总高度比组合框的高度大则自动加上垂直滚动条下拉式列表框)Text该属性是用户所选择的项目的文本或直接从编辑区输入的文本(组合框事件第七章常用标准控件组合框事件所响应的事件依赖于Style属性只有简单组合框才能接受DblClick事件其它二个组合框可以接受Click事件和DropDown事件对于下拉式组合框(Style=)和简单组合框可以在编辑区输入文本当输入文本时可以接受Change事件一般情况下用户先择项目后只需要读取组合框的Text属性当用户单击组合框中向下箭头时将触发DropDown事件该事件实际上对应于向下箭头的单击Click事件(组合框方法前面介绍的Additem、Clear和RemoveItem方法也适用于组合框其方法与在列框中相同第六节(滚动条一(滚动条属性)Max滚动条所能表示的最大值<一般设为>)Min滚动条所能表示的最小值)Largechange单击滚动条中滚动框前面或后面的部位时Value增加或减小的增量值)smallChange单击滚动条两端的箭头时Value增加或减少的增量值)Value该属性值表示滚动框在滚条上的当前位置二(滚动条事件与滚动条有关的事件主要是Scroll和Change事件当在滚动条内拖动滚动框时会触发Scroll事件而改变滚动框位置时触发Change事件Scroll事件用于跟踪滚动条中的动态变化Change事件则用来得到滚动条的最后的值。第七节(计时器(所谓的时间间隔指的是计时器之间的时间间隔它以毫秒为单位(计时器可以使用Name属性和Enabled属性其重要的属性是Interval最大时间间隔不超过秒(计时器支持Timer事件对于一个含有计时器控件的窗体每经过一段由属性Interval指定的时间间隔就产生一个Timer事件第八节(框架第七章常用标准控件(框架是一个容器控件用于将屏幕上的对象分组不同的对象可以放在一个框架中框架提供了视觉上的区分和总体的激活和屏蔽特性(框架常用的事件是Click和DblClick,它不接受用户输入不能显示文本和图形也不能与图形相连第九节(焦点与TAB顺序焦点用下面的方法可以设置一个对象的焦点在运行时单击该对象在运行时用快捷键选择该对象在程序代码中使用SetFocus方法焦点只能移动到可视的或控件上因此只有当一个对象的Enabled和Visible属性均为True时它才能收到焦点并不是所有的控件都可以收到焦点某些控件例如:框架、标签、菜单、直线、形状、图象框和计时器都不能接收焦点可以通过SetFocus方法设置焦点但应注意的是由于在窗体上的Load事件完成前窗体或窗体上的控件是不可见的因此不能直接在FormLoad事件过程中用Setfocus方法把焦点移到正在被装入窗体或窗体上的控件(Tab顺序(可以获得焦点的空间都有一种“TabStop”属性有它可以控制焦点和移动该属性的默认值为True,如果把它设置为False时用Tab移动焦点时会跳过该控件(在设计阶段可以通过属性窗口中的TabIndex属性来改变Tab顺序(在建立控件时对于标签的Caption属性键入时可以在其前面加一个“”“”符号只在属性窗口出现不会在窗体的标签控件上显示出来但它使得该标签的标题的第一个字母下面有一条下划线。(在一组单选按钮中只有一个Tab站即被选中的单选项按钮的TabStop属性自动设为True而其它的单选项按钮的Tabstop被设置为False注:“”的作用就是设置快捷键该控件的快捷键是“Alt有下划线的字母”第八章VB控制结构第八章VB控制结构第一节(选择控制结构条件语句也称IF语句一种是单行结构一种是块结构一(单行结构条件语句如果“条件”为True则执行“Then部分”否则执行“Else部分”单行条件语句比较较简单其格式如下:IF条件ThenThen部分ElseElse部分二(块结构的条件语句(块结构条件语句与CAda等语言中条件语句类似一般格式如下:IF条件Then语句块ElseIf条件Then语句块ElseIf条件Then语句块„„Else语句块NEndIf(说明当条件是数值表达式时非零值表示True值表示False,而当条件是关系表达式或逻辑表达式时表示True,表示False块结构与单行结构语句的主要区别就是看Then后面的语句(注释语句除外)是否和Then在同一行上如果在同一行上则为单行结构否则为块结构对块结构必须以EndIf结束单行结构没有EndIf在块结构的条件语句中ElseIf子句的数量没有限制可以根据需要加入任意多个ElseIf子句块结构条件语句中的ElseI子句和Else子句都是可选的如果省略这些子句则块形式的条件语句简化为:If条件Then语句块EndIf在某些情况下可能有多个条件为True但也只能执行一个语句块块形式的条件语句可以嵌套第八章VB控制结构三(IIF函数IIf函数的格式如下:Result=IIf(条件True部分False部分)说明:“Result”是函数的返回值“条件”是一个逻辑表达式当“条件”为True时IIF函数返回True部分而当“条件”为False时则返回“False部分”“True部分”和“False部分”可以是表达式变量或其它函数注意:IIF函数中的三个参数都不能省略而且要求“True部分”“False部分”及结果变量的类型一致注:如果“False部分”存在被除的问题则程序会出错(即使条件为True)第二节(多分支控制结构一(格式在VB中多分支控制结构程序通过情况语句来实现情况语句也称为SelectCase语句或Case语句在一组相互独立的语句序列中挑选要执行的语句序列。一般格式为:Selectcase测试表达式Case表达式列表语句块Case表达式列表语句块„„Caseelse语句块NEndSelect二(说明情况语句的执行过程是:=先对“测试表达式”求值然后测试该值与哪一个Case语句中的“表达式列表”相匹配如果找到了则执行与该Case子句有关的语句块并把控制结构移到到EndSelect后面的语句“表达式列表”注意事项:关键字TO用来指定一个范围在这种情况下必须把比较小的值写在前面字符串常量范围必须按字母顺序写出如果使用关键字IS则只能用关系运算符。注意:当用关键字IS定义条件时只能是简单的条件能使用罗辑运算符将两个或多个简单的条件组合在一起在一个SelectCase语句中种形式可以混用SelectCase语句与IF„„Then„„Else语句块功能类似一般来说可以使用块形式条件的地方也可以使用情况语句第八章VB控制结构如果同一个取值的范围在多个Case子句中出现则只执行符合要求的第一个Case子句的语句块在情况语句中Case子句的顺序对执行结果没有影响但应注意的是CaseElse子句必须放在所有的Case子句之后如果在SelectCase结构中的任何一个Case子句都没有与测试表达式相匹配的值而且也没有CaseElse子句则不执行任何操作在不同的Case语句中指定的条件和相应的操作不能相互矛盾第三节(For循环控制结构VB提供了种不同风格的循环结构包括计数循环当循环和DO循环一(计数循环For格式:For循环变量=初值TO终值Step步长循环体ExitForNext循环变量循环变量„„二(说明:(格式中有多个变量这些参数的含义如下:循环变量:也称“循环控制变量”、“控制变量”或“循环计数器”它是一个数值变量但不能是下标变量或记录变量步长不可为。如果步长为则可省略不写格式中的初值终值步长均为数值表达式。但其值不一定是整数可是以实数VB自动调整(For循环语句的执行过程是:首先把“初值”赋给“循环变量”接着检查循环变的值是否超过终值如果超过就停止执行“循环体”跳出循环执行Next后面的语句否则执行一次“循环体”然后把“循环变量步长”的值赋给“循环变量”重复上述过程这里所说的“超过”有两种含义即大于或小于当步长为正值时检查“循环变量”是否大于终值当步长为负值时判断“循环变量”的值是否小于终值(在VB中For„„Next循环遵循“先检查后执行”的原则即先检查循环变量是否超过终值然后决定是否执行循环体因此在下列情况下循环体将不会被执行:当初值等于终值时不管步长是正数还是负数均执行一次循环体(For语句和Next语句必须成对出现不能单独使用且For语句必须在Next语句之前(循环次数由初值、终值和步长个因素确定计算公式为:循环次数=Int(终值初值)步长(For„„next语句可以嵌套使用(在VB中循环控制值不但可以是整数还可以是双精度数和单精度数第八章VB控制结构(循环变量用来控制循环的过程在循环体内可以被引用和赋值当循环变量在循环体内被引用时称为“操作变量”而不被引用的循环变量叫作“形式变量”如果用循环变量作为“操作变量”当循环体内循环变量出现的次数较多的时候会影响程序的清晰性(一般情况下For„„Next正常结束即循环变量达到终值但有些情况下可能需要在循环变量到达终值前退出循环这可以通过ExitFor语句并且可以出现在循环体内的任何位置此外用ExitFor只能退出当前循环即退出它所在的内层循环(For„„Next中的“循环体”是可选项项当该项缺省时For„„next执行“空循环”利用这一特性可以暂停程序的执行当程序暂停时间很短或者对时间没有严格要求时用For„„Next循环来实现暂停是一个好方法不过对不同的计算机暂停的时间也不一样用后面介绍的WhileWend循环和DOLoop循环也可以实现暂停第四节(当循环控制结构一(当循环控制结构VB中当循环的控制结构如下:Wile条件语句块Wend“条件“为一布尔表达式当循环的功能是:当给定“条件”为True时执行循环体中的“语句块”二(当循环与For循环的区别For循环(计数循环)对循环执行指定的次数当循环则是在给定条件为True时重复一语句序列(循环体)的执行注意:当循环要有语句来结束循环的条件三(当循环的注意事项(While循环语句先将对条件进行测试然后决定是否执行循环体只有在“条件”为True时才执行循环如果条件开始就不成立则一次循环也不执行(如果条件总是成成立则不停的执行循环体(开始时对条件进行测试如果成立则执行循环体执行完一次循环体后再测试条件如果成立则继续执行直到条件不成立为止也就是说当条件最初出现False时或以上面某种方式执行循环体使得条件的求值最终出现False时当循环才被终止在正常使用的“当循环”中循环体的执行应当能使条件改变否则会出现死循环这是程序设计中容易出现的严得错误应当尽力避免(当循环可以嵌套层数没限制每个Wend和最近的While相匹配第八章VB控制结构第五节(DO循环控制结构一(DO循环的格式(Do语句块EixtDoLoopWhile|Until循环体While循环与DO„„Loopwhile|Until循环的区别:While循环是先判断后执行而DO„„LoopWhile|Until循环是先执行后判断也就是说当条件不成立时最少会执行一次循环体Do„„Loopwhile循环逻辑图Do„„LoopUntil循环逻辑图开始开始执行循环体执行循环体开始开始体计算条件的“值”体计算条件的“值”YesNo条件为“真”时条件为“真”时NoYes结束结束(DoWhile|Until循环体语句块ExitDoLoop这种格式的DoWhile„„与While循环功能一样二(说明(Do、Loop及While、Until都是关键字。“语句块”是需要重复执行的一个或多个语句即循环体。“循环条件”是一个逻辑条件(While是条件为True时执行循环而Until则是在条件变为True之前重复(在格式()中While和Until放在循环体的未尾分别叫做Do…LoopWhile和Do…LoopUntil循环第八章VB控制结构(在格式()中While和Until放在循环的开头即紧跟在关键字DO之后组成二循环分别叫做DoWhile…Loop和DOuntil…Loop循环(Dowhile|Until…Loop循环先判断条件然后在条件满足的时才执行循环体否则不执行、(和While循环一样如果条件总是成立Do循环也可能陷入死循环在这种情况下可以用ExitDo语句跳出循环一个DO循环可以有一个或多个ExitDo语句并且ExitDo可以出现在循环体的任意地方不循环到语句时结束循环并把控制转移到Do循环后面的语句用ExitDo语句只能从它所在循环中退出(Do循环可以嵌套其规则与For…Next循环相同第六节(多重循环通常把循环体内不含有循环语句的循环叫单层循环而把循环体内含有循环语句的循环叫多重循环第九章数组第九章数组第一节(数组的定义在VB中把一组具有相同名字不同下标的变量称为数组其一般格式如下:S(N)说明:S为数组名N为下标(一般情况下下标从零开始)一(数组的定义在VB中可以用四个语句来定义数组这四个语句格式相同但适用范围不同(Dim用来在窗体模块中或标准模块中定义窗体或标准模块数组也可用于过程。ReDim用在过程中(主要用于定义动态数组)。Static用在过程中(主要用于定义静态数组)。Public用在标准模块中定义全局数组二(定义数组的格式在定义数组时VB提供了两种格式:第一种格式(第一种格式与传统的数组定义相同对于数组的每一维只要给出下标的上界即可以使用下标的最大值。对于一维数组格式如下:Dim数组名(下标上界)AS类型名称对于二维数组格式如下:Dim数组名(第一维下标上界第二维下标上界)AS类型名称(说明(如果省略“AS类型名称”则定义的数组为了Variant类型。数组必须先定义后使用。当用Dim语句定义数组时该语句把数值数组中的全部元素都初使化为“”而把字符串数组的全部元素都初使化为“空字符串”一般情况下下标的下界默认为如果希望从开始可以通过OptionBase语句来设置其格式为:OptionBaseNOptionBase语句用来指定数组下标的下界。只能是或OptionBase语句只能出现在窗体层或模块层不能出现在过程中并且必须放在数组定义之前此外如果定义的是多维数组则下标的默认下界对每一维都有效第二种格式第九章数组用第一种格式定义的数组其下标的下界只能是或而如晨使用第二种格式则可要据需要指定数组的下界。其格式如下:Dim数组名(下界TO上界下界TO上界„„)AS类型说明下标的范围可以是三(定义数组时应注意的事项(数组名的命名规则与变量名相同在命名时应尽可能有一定的含义做到“见名知意”(名称的唯一性)(在同一过程中数组名不能与变量名相同否则会出错(在定义数组时每一维的元素个数必须是常数不能是常量或表达式(数组类型通常在AS语句中给出如果省略了AS语句则定义的是默认数组。此外也可以通过类型说明符来指定数组的类型(测试数组上界值和下界值的两个函数:LBound(数组名维)(测下界)UBound(数组名维)(测上界)这两个函数分别返回一个数组中指定维的下界与上界其中“数组”是一个数组名“维”是要测试的维LBound函数返回“数组”某一“维”的下界值而UBound函数返回“数组”某一维的上界值四(默认数组在VB中允许定义默认数组所谓的默认数组就是据类型为Variant的数组默认数组可以说是一个混合数组第二节(静态数组与动态数组根据内存区开辟时机的不同可以把数组分为静态数组和动态数组通常把需要在编译时开辟内存区的数组叫静态数组而把需要在运行时开辟内存区的数组叫动态数组一(动态数组的定义(动态数组以变量作为下标值在程序运行中完成定义通常分为二步:首先在窗体层、标准模块或过程中用Dim和Public声明一个没有下标的数组(括号不能省略)然后在过程中用ReDim语句定义带下标的数组(ReDim语句的格式为:RedimPreserve变量(下标)AS类型该语句用来重新定义动态数组按定义的上下界重新分配存储单元并可为定义的变量改变存储类型当重新分配动态数组时数组中的内容将被清除但如果在ReDim语句中使用了Preserve选择项则不清除数组内容(ReDim只能出现在事件过程中用它定义的数组是一个临时数组即在执行数组所在的过程时为数组开辟一定的内存空间当过程结束时这部分内存即被释放(说明:第九章数组(在窗体层或模块层定义的动态数组只有类型没有指定维数其维数在ReDim语句中给出最多不能超过维。用ReDim语句定义的数组最多可达到维(直接定义才可以达到维)。可以多次用ReDim语句定义同一个数组随时修改数组中元素的个数而在事件过程中开始时用ReDim定义的数组只能改变元素的个数不能改变数级的维数也不能用ReDim改变数组的类型二(数组的清除和重定义(数组一经定义便在内存中分配了相应的存储空间其大小是能改变的在一个过程中同一个数组只能定义一次有时候可能需要清除数组的内容或对数组重新定义这可以用Erase语句来实现其格式为:Erase数组名数组名„„Erase语句用来重新初使化静态数组成部分元素或者释放动态组的存储空间。(释放动态数组时整体都不存在)(说明。当把Erase语句用于静态数组时如果这个数组是数值数组则把数组中所有的元素置为如果是字符串数组则把所有元素置为空字符串金文教程第节暂时空缺第三节(数组的基本操作一(数组元素的输入输出和复制(数组的引用数组的引用通常是指对数组元素的引用在引用数组时应注意以下几点:。在引用数组元素时数组名、类型、和维数必须与定义数组时一致。如果建立的是二维数组或多维数组必须给出二个或个下标。引用数组元素时其下标值应在建立数组时所指定的范围内(数组元素的输入数组元素一般通过For循环语句及Inputbox函数输入(数组元素的输出数组元素的输出可以用Print方法来实现(数组元素的复制单个数组元素可以像简单变量一样从一个数组复制到另一个数组(冒泡排序二二对比的原理把比较大的一个赋值给变量利用变量跟未对比过的数字进行对比。对于N个数进行排序只要比较N次二(ForEach…Next语句ForEach…Next语句类似于For…Next语句两者都用来执行指定重复次数的一组操作但ForEach…Next语句专门用于“数组”或对象“集合”其一般格式为:第九章数组ForEachelementIngroupstatementsExitForstatementsNextelementelement必要参数。用来遍历集合或数组中所有元素的变量。对于集合来说element可能是一个Variant变量、一个通用对象变量或任何特殊对象变量。对于数组而言element只能是一个Variant变量。group必要参数。对象集合或数组的名称(用户定义类型的数组除外)。数组名后面没有括号statements可选参数针对group中的每一项执行的一条或多条语句。三(说明(如果集合中至少有一个元素就会进入ForEach块执行。一旦进入循环便先针对group中第一个元素执行循环中的所有语句。如果group中还有其它的元素则会针对它们执行循环中的语句当group中的所有元素都执行完了便会退出循环然后从Next语句之后的语句继续执行。(在循环中可以在任何位置放置任意个ExitFor语句随时退出循环。ExitFor经常在条件判断之后使用例如If…Then并将控制权转移到紧接在Next之后的语句。(可以将一个ForEachNext循环放在另一个之中来组成嵌套式ForEachNext循环。但是每个循环的element必须是唯一的。注意:如果省略Next语句中的element就像element存在时一样执行。如果Next语句在它相对应的For语句之前出现则会产生错误。(不能在ForEachNext语句中使用用户自定义类型数组因为Variant不能包含用户自定义类型。第四节(数组的初使化(所谓的数组的初使化就是给数组的各元素赋初值(VB提供了Array函数利用该函数可以使数组在程序运行之前初使化得到初值(Array函数用来给数组元至少赋初值即把一个数据集导入某个数组其格式为:第九章数组数组变量名=Array(数组元素值)(数组变量不能是具体的数据类型只能是变体类型(数组变量可以能过以下三种方式定义:显示定义为Variant变量在定义时不指明类型不定义而直接接使用(Array函数只适用于一维数组即只对一维数组进行初使化不能对二维或多维数组进行初使化。第五节(控件数组一(基本概念(控件数组是由一组相同类型的控件组成这些控件共用一个相同的控件名字具有同样的属性设置。(控件数组的每一个元素都有一个与之相关的联的下标或称索引下标值由Index属性决定(在设计阶段可以改变控件数组元素的Index属性但不能在程序运行时改变二(建立控件数组(建立控件数组的两种方法。复制粘贴。修改Name属性(控件数组建立后只要改变一个控件的Name属性并把Index属性设为空(不是)就能把该控件从控件数组中删除第十章过程第十章过程第一节(建立Sub过程由Sub…endSub定义的子程序叫做子程序过程或Sub过程而把Function…EndFunction定义的函数叫函数过程或Function过程一建立Sub过程定义Sub过程通用的Sub过程结构与事件过程类似一般格式如下:StaticPrivatePublicSub过程名(参数列表)语句块ExitSub语句块EndSub说明)Sub过程以Sub开头以EndSub结束在Sub和EndSub之间是描述过程操作的语句块称“过程体”或“子程序体”格式中各参数的含义如下:(Static:如果使用了Static则过程中的局部变量就是Static类型的即在每次调用时局部变量的值保持不变。Private表示Sub过程是私有过程。Public表示Sub过程是公有过程可用在程序的任何地方调用。过程名是一个长度不超过个字符的变量名在同一个模块中同一个变量名不能即用作Sub过程名又用作Function过程名参数列表:含有在调用时传送给该过程的简单变量名或数组名各名字之间用逗号隔开“参数列表”指明了调用时传递给过程的参数的类型和个数每个参数的格式为:Byval变量名()As数据类型这里的“变量名”是一个合法的VB变量名或数组名。如果是数组则要在数组名后面加一对括号如果省略了“AS数据类型”则默认为“Variant”如果加上“Byval”则表明该参数是传值。没有加“Byval”或者加Byref的参数称为“引用”不能用定长字符串变量或定长字符串数组作为形式参数不过可在调用语句中用简单定长字符串变量作为“实际参数”)EndSub标志着Sub过程结束为了能正确运行每个Sub过程都必须有一个EndSub子句当程序执行到EndSub时将退出该过程并立即返回到调用语句下面的语句此外在过程体内可以用一个或多个ExitSub语句从过程中退出)Sub过程不能嵌套)建立Sub过程可以在标准模块中建立也可以在窗体模块中建立。建立的方法有二种:(手动输入第十章过程。通过工具菜单里的添加过程添加二调用Sub过程调用引起过程的执行也就是说要执行一个代码必须要调用该过程。Sub过程的调用有二种方式一种是把过程的名字放到一个Call语句中一种是过程名作为语句来使用(用Call语句调用Sub过程格式:Call过程名(实际参数)用Call语句调用一个过程时如果过程本身没有参数则“实际参数”和括号可以省略否则应给出相应的参数并把参数放在括号中。(把过程名作为一个语句来使用在调用Sub过程时如果省略关键字Call就成为调用Sub的第二种方式与第一种相比它有二点不同:。去掉关键字Call。去掉“实际参数”的括号三通用过程和事件过程(事件过程也是Sub过程但它是一种特殊的Sub过程它附加窗体和控件上一个控件的事件过程由控件的实际名字、下划线和事件名组成而窗体事件过程由“Form”、下划线和事件名组成也就是说窗体的事年过程不能由用户任意定义而系统指定控件事件过程一般格式为:Private|PublicSub控件名事件名(参数表)语句组EndSub窗体事件过程的一般格式为:Private|PublicSubForm事件名(参数表)语句组EndSub可以看出除了名字外控件事件过程和窗体事件过程格式基本上是一样的在在大多数情况下通常是事件过程中调用通用过程实际上由于事件过程也是过程(Sub过程)因此也可以被其它过程调用(包括事件过程和通用过程)(通用过程也可以放在标准模块中也可以和在窗体模块中而事件过程只能放在窗体模块中不同模块中的过程(包括事件过程和通用过程)可以相互调用当过程名唯一时可以直接通过过程名调用如果二个或二个以上的标准模块中含有相同的过程名则在调用时必须用模块名限定其一般格式为:模块名过程名(参数表)第二节(Function过程Sub过程它不直接返回值可以作独立的基本语句使用而Function过程要一个返回值通常出常在表达式中。一建立Function过程第十章过程(Function过程又称函数过程Function过程定义的格式如下:StaticPrivatePublicFunction过程名(参数列表)AS类型语句块过程名=表达式ExitFunction语句块EndFunction(说明)。Function过程以Function开头以EndFunction结束其它参数含义与Sub过程相同)。调用Sub过程相当于执行一个语句而调用一个Function过程要返回一个值因此可以像内部函数一样在表达式中使用。如果在Function过程中省略“过程名=表达式”则该过程返回一个默认值数值函数返回值字符串函数返回空字符串)。Function过程不能嵌套二调用Function过程Function过程的调用可以像VB内部函数一样来调用第三节(参数传递在VB当中通常把形式参数叫做“形参”而把实际参数叫做“自变量”但是为了和其它含义混淆所以把形式参数叫“形参”实际参数叫“实参”一形参和实参形参是在Sub、Function过程的定义中出现的变量名实参则是在调用Sub或Function过程时传递给Sub、Function过程的常数、变量、表达式或数组在VB中可能通过两种方式传送参数即按位置传送和指明传送。(按位置传送。实际参数的次序必须和形式参数的次序相匹配它们的位置、次序必须一致。。形参表与实参表中对应变量的名字不必相同但它所包含的参数的个数必须相同实参与相应形参的类型必须相同。。形式参数表中各个变量之间用逗号隔开表中的变量可是除定长字符串之外的合法变量名也可以是数组名。(指明传送所谓指明传送就是显示的指出与形参结合的实参把形参用“:=”与实参连接起来各位置传递方式不同指导名传送不受位置次序的限制。二引用参数通过两种方式传送即传地址和传值其中传地址习惯上称为引用引用方式通过关键字“Byref”来实现第十章过程三传值传值就是通过值传送实际参数在VB中传值方式通过并键字“Byval”来实现(没有Byval默认为Byref)四数组参数的传递在VB中允许把数组做为实参传送到过程中用数组作为过程参数时应在数组名后面加一对括号以免与普通变量相混淆当用数组作为过程参数时使用的是“传地址”方式除了遵守参数传递的一般规则外还应注意以下几点(为了把一个数组的全部元素传递人一个过程应将数组名分别放入实参表和形参表中并略去数组的上下界但括号不能省略如果不需要把整个数组传送给通用过程可以只传送指定的单个元素这需要在数组名后面的括号中写上指定元素的下标LBound函数可以求出数组的最小标值而用UBound函数可以求出数组的最大下标值。第四节(可选参数与可变参数一(可选参数(为了定义带可选参数的过程必须在参数表中使用关键字Optional并在过程体中通过Ismissing函数测试调用时是否传送可选参数(可选参数过程通过Optional指定可选的参数其类型必须是Variant通过Ismissing函数测试是否向可先参数传送实参值Ismissing函数有一个参数它就是由Optional指定的形参的名字其返回值是Boolean类型在调用过程时如果没有向可选参数传送实参则ISmissing函数返回True否则返回False(可以利用逻辑运算符Not来求值例如:IFNot数组名Then…next注意:这里的数组名没括号)二(可变参数(可变参数过程通过Paramarray命令来定义一般格式为:Sub过程名(Paramarray数组名)这里的“数组名”是一个形式参数只有名字和括号没有上下界由于省略了变量类型“数组名”默认为Variant(由于可变参数过程中的参数是Variant类型因此可以把任何类型的实参传送给该过程第五节(对象参数在VB中还可以向过程传递对象包括窗体和控件一(窗体参数第十章过程就是用窗体作为参数例子:OptionExplicitSubformset(formnumAsForm)formnumLeft=formnumTop=formnumWidth=formnumHeight=EndSubPrivateSubFormLoad()formsetFormformsetFormformsetFormformsetFormEndSub例子的结果是:四个窗体重叠显示记住二个属性:Hide(隐藏)Show(显示),这二个单词用来控制是否显示窗体(暂时只知道这么多)例如:PrivateSubFormClick()FormHide‘窗体隐藏FormShow‘窗体显示EndSub二(控件参数在调用控件做为参数时对应的类型为:Control应该注意当前控件的属性例子:OptionExplicitSubFontout(comdAsControl,comdAsControl)comdFontSize=comdFontSize=EndSubPrivateSubFormClick()FontoutCommand,CommandEndSub结果是:调整二个按钮的字体大

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/99
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料