VB60详细讲义(VB6实用教程,VB6从入门到精通)_第1页
VB60详细讲义(VB6实用教程,VB6从入门到精通)_第2页
VB60详细讲义(VB6实用教程,VB6从入门到精通)_第3页
VB60详细讲义(VB6实用教程,VB6从入门到精通)_第4页
VB60详细讲义(VB6实用教程,VB6从入门到精通)_第5页
已阅读5页,还剩190页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE第一章VisualBasic介绍第二章用户界面设计第三章编程的基础(含变量,常量,条件语句,循环语句,自定义变量,自定义过程,对象和类等基础)第四章Windows95的新控件VisualBasic的输入输出第五章VisualBasic的鼠标事件和绘图第六章VisualBasic的数据库、报表、预览、打印第七章从文件中存取资料第八章发行应用程序第九章使用WindowsAPI和用VisualBasic建立自己的屏幕保护程序第十章创建ActiveX控件第十一章ActiveX文档第十二章用对象链接与嵌入(OLE)扩展VisualBasic第十三章使用资源文件第十四章用VisualBasic建立ActiveXDLL第十五章用Winsock控件进行Internet通信第十六章Web浏览控件第一章 VisualBasic介绍§2窗体和命令钮介绍一、窗体窗体是Windows的基本组成部分,这也是为什么这个操作系统叫Windows的原因。它的主要属性除上面介绍的以外,还包括:1,Appearance属性这个属性用来决定控件是否采用三维效果。2,BorderStyle属性这个属性决定了窗体的边框形式,共有6种属性值。改变窗体的BordrStyle属性后,窗体在屏幕上没有变化,它只在运行时才变为你所要求的样子。3,ControlBox属性程序员用来决定采用不采用控制框的属性,仅在程序运行时才有效。4,Font属性程序员可以改变该窗体上显示信息的字体,它控制着直接在窗体上打印的文本显示。5,Icon属性这个属性是用户经常要使用的一种属性。当用户的应用程序在工具条上最小化或在Windows桌面上变为一个独立应用程序时,该属性决定将采用何种图标,窗体控制框里的图标也由它决定。为自己的窗体设置该属性时,要控制住自己挑三拣四的冲动。6,Visible属性该属性决定窗体是否可见。错误地改变其值是很危险的,窗体会从眼前消失,这种莫名其妙的事情会使用户惊惶失措,所以肩负重任的程序员一定要慎重哟!7,WindowState属性指定窗体在运行时的三种状态:正常、最小化、最大化。二、窗体的主要事件1,Load事件这个事件发生在窗体被装入内存时,且发生在窗体出现在屏幕之前。窗体出现之前,VisualBasic会看一看Load事件里有没有代码,如果有,那么它先执行这些代码,再让窗体出现在屏幕上。2,Click事件,Dblclick事件这两个事件在单击或双击窗体时发生。不过你单击窗体里的控件时,窗体的Click事件并不会发生,VisualBasic会去看控件的Click事件里有没有代码。3,Activate(活动事件)与Deactivate(非活动事件) 显示多个窗体时,可以从一个窗体切换到另一个窗体。每次激活一个窗体时,发生Activate事件,而前一个窗体发生Deactivate事件。三、窗体控制装入或卸出窗体要装入或卸出窗体,用Load

或Unload语句。Load语句的语法如下:LoadformName而UnLoad语句的语法是:UnLoadformNameFormName变量是要装入或卸出的窗体名。Load语句只是把窗体装入内存,并不显示出来,要显示窗体可以使用窗体的Show方法。2,显示或隐藏窗体要显示窗体,用Show方法。若尚未装入内存则先装入再显示。它的语法如下:formName.showmodeFormName变量是窗体名,可选变元mode为0(缺省值)时窗体为非模态,为1时窗体为模态。模态窗体完全占有应用程序控制权,不允许切换到别的应用程序,除非关闭!而非模态窗体则反之。同理,隐藏窗体用formName.hide。四、命令钮命令钮有两类:一类是简单的命令钮,一类是图形钮。图形钮常常成组地出现在屏幕的顶端,成为一些程序炫耀自己贴近用户的标志。图形钮充分利用了图形用户界面的特征,而且比命令钮小,但它的缺点是用户必须知道图形钮是什么意思,而且没有鼠标的用户恐怕用不了图形钮。命令钮也有Appearance、Caption、Font、Left、Visible之类的属性。命令钮的最主要事件就是Click事件,它还有MouseDown和MouseUp等事件§3建立菜单一般Windows的菜单条包含File,Edit,Window和Help菜单标题。其它的菜单,程序员应将它们插在Edit和Window菜单之间。在VisualBasic里,为了创建菜单,必须打开菜单编辑窗口。可以按下Ctrl+E键,也可以从Tools菜单中选择MenuEditor项,或者单击VisualBasic主窗口的从左边数第六个图形钮。一、给菜单命名菜单标题和菜单命令也有Caption和Name属性,你设置了这两个属性就等于创建了菜单。于控件一样Caption是屏幕上可见的,而Name则是一个抽象名称。别忘了在Caption里加入“&”以帮助没有鼠标的用户。二、增加和删除菜单在MenuEditor中部有三个命令钮分别是Next,Insert,Delete。Insert可用来增加新的菜单。在这三个键下面的Caption列表框里选中菜单项(这时它的底色就变成深蓝色),单击Insert键,VisualBasic将上一个增亮菜单下推并增亮一空行,你就可以输入新菜单名和标题了。Delete键可用来删掉菜单。你选中要删掉的菜单,单击Delete键就可以删掉它了。三、移动菜单标题有四种情况,向上移动,向下移动,向左缩排,向右缩排,这就是MenuEditor中间上下左右箭头的功能。选中某一菜单标题,安上下箭头,则这个菜单将上下移动到你喜欢的位置上,这也决定了它在界面中的位置。如果你按左右箭头,情况则有所不同。由于菜单是分级的,所以,如果它没有缩排,则它是一个菜单标题;如果它缩排一次,那么它将变成一个菜单命令;如果缩排两次,那么它将成为一个子菜单命令。VisualBasic里你可以总共设计四层子菜单。四、设置分离条分离条是指在菜单中将命令分组的线。奇怪的是,VisualBasic将分离条也看成一个菜单项,它也需要Caption和Name属性,而且它也有其它属性,分离条与菜单项的区别是分离条的Caption属性必须是连字号即减号。也就是,当你设置了一个Caption属性为“-”的菜单项时,实际上你就设置了一个分离条,分离条的名字可以是barFile1之类,以表明分离条的位置。五、菜单的各种简单属性在MenuEditor里有许多确认框和一些正文框及一个下拉式的列表框,这些东西决定了菜单的各种属性。1,Checked属性这个属性值设置为真,将在菜单命令左边产生一个打勾的确认标志,你可以看看FileManager里的View菜单就可以了解什么是确认标志了。2,Enabled属性各种各样的用户会产生千奇百怪的操作,在许多Edit菜单里都会有不同形式的让菜单命令模糊的情况。Enabled属性就是用来做这件事的。Enabled属性为真,则菜单命令是清晰的,Enabled属性为假,则菜单命令是模糊的,这时用户就不能选中这个菜单项了。3,Visible属性用户看见一个模糊的菜单而不能选的时候,有时会非常生气。所以,如果用户看不见这个菜单命令时,他也就不会发无名之火了。如果把Visible属性设为假,则菜单根本不会出现在屏幕上。这样做比把Enabled属性设为假显得更加干脆!4,Index属性可以生成菜单命令数组,用索引号区分开。例如向File菜单中添加一系列最近打开的文件名。添加菜单可用Load方法。以上属性可以在运行时设置,形成动态的菜单的情况。例如:mnuUndo.Enabled=FalsemnuProperty.Visible=False你还可以改变Caption等属性。mnuUndo.Caption=“Redo”在对窗体,命令钮和菜单有所了解后,工具箱里的其它控件就更加容易理解了。下面这些控件的熟练运用,将使你做出漂亮的界面。六、生成弹出式菜单(或浮动菜单)几乎每个Windows应用程序都提供弹出式菜单,用户可以右键单击窗体或控件取得这个菜单。弹出式菜单也属于普通菜单,只是不固定在窗体上,而是可以在任何地方显示。 弹出式菜单用PopupMenu方法调用。假设我们已经用MenuEditor生成了名为mnuedit的菜单,则可以在MouseUp事件加入如下代码: IfButton=2ThenPopupMenumnuedit下面将用一个实例展示动态菜单和弹出式菜单。 左图表单显示了一个弹出式菜单,在表单的空白处右击鼠标就可得到。左图表单显示了一个动态菜单,单击Addruntimeoption钮一下就会使菜单RuntimeMenu增加一项,而单击Removeruntimeoption钮一下就会使菜单RuntimeMenu减少一项。其源代码如下:DimrtmenuPrivateSubcmdadd_Click()rtmenu=rtmenu+1Ifrtmenu=1Thenmnuoption(0).Caption="RuntimeOption"Loadmnuoption(rtmenu)mnuoption(rtmenu).Caption="option#"&rtmenuEndSubPrivateSubcmdremove_Click()Ifrtmenu=0ThenMsgBox"menuisempty"ExitSubEndIfUnloadmnuoption(rtmenu)rtmenu=rtmenu-1EndSubPrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnueditEndSub§4框架,确认框和选项钮一、确认框和选项钮就好比多项选择和单项选择,在考试时选择题总比简答题要好做,因为你可以用瞎蒙的策略。用户界面设计的保持简单的原则使确认框和选项钮成为有用的框件。确认框和选项钮用于向程序输入信息。确认框选中时会在小方框里打一个钩,菜单设计窗口里就有这种确认框的例子。选项钮选中时会在小圆圈里点一个点。它们的主要属性除了Name,Caption等,还有:1,Value属性决定它们是否被选中的属性。2,Alignment属性决定它们的对齐方式。二、有两道选择题或更多时,我们就必须对它们进行分组。这种分组需要借助框架控件。分组的方法是:在工具箱里单击Frame控件;在窗体里拖曳鼠标画出框架;在工具箱里单击确认框或选项钮控件;在框架里画确认框或选项钮;把所需的确认框或选项钮都画好。§5正文框和标签正文框通常用于向计算机输入信息,而标签通常用于输出信息。正文框是一个十分重要的控件,因为由确认框和选项钮向程序输入的信息毕竟只有少数的几条信息而已。标签和正文框的区别很小,标签可以看成是一个在运行时不能修改正文的正文框。因此标签主要用于输出信息。标签是生活中不可缺少的部分,比如教室里的“团结,勤奋,严谨,活泼”就是一个每天不得不面对的标签。1,BorderStyle属性决定了正文框和标签的边框形式。2,正文框的Text属性和标签的Caption属性这两个属性其实是一样的,它决定了用户在屏幕上看到的东西,只不过正文框的Text属性在运行时可以直接在正文框里修改。3,Alignment属性这个属性决定正文或标题的排列方式。4,正文框的Multiline属性如果正文框里的字太多了,超过了正文框的宽度,那么计算机就在某个我们不知道的地方显示这行字,所以我们要设置Multiline属性为True,这样正文框就有了字换行的能力。5,正文框的PasswordChar属性如果用户从事的是一种掌握大量金钱或机密的工作的话(此类用户肯花大钱来买关于计算机的东西),那么他就需要对自己的工作遮遮掩掩,在VisualBasic里你可以作一个口令正文框来实现这种遮掩。方法是:(1)选中作为口令正文框的正文框。(它的周围出现八个小方块)(2)按F4键打开属性窗口。(3)设置Multiline属性为False。(4)设置PasswordChar为用于掩盖的字符。(只能是一个字符,比如*号)第三步使口令正文框只有一行,因为Multiline属性为True将使Password属性失效。VisualBasic认为口令不必太长,因为太长的口令更加容易忘记。6,正文框的Maxlength属性为了防止一些古怪用户输入太多的废话,程序员有限制正文框正文长度的权力,这就是Maxlength属性。如果Maxlength属性设置为零,那么正文框就只受计算机内存的限制了。7,Label的AutoSize属性和WordWrap属性这两个属性在一起搭配使用总是让人混淆,以至于VisualBasic附带的示例程序里有一个程序里有这两个属性的例子,它的路径通常是c:\vb\samples\controls\control.vbp。在VisualBasic里运行这个例子,选择Options菜单的WordWrapandAutoSize。AutoSize属性使标签自动地扩大缩小以适应标签的Caption属性,但是它只会水平伸展。WordWrap属性使标签具有字换行处理的能力。为了使标签具有垂直伸展和字换行处理,必须设置它的AutoSize属性和WordWrap属性同时为True。AutoSize属性为False,WordWrap属性为False时,若标签不够高而Caption太长时,Caption将被切割掉。AutoSize属性为False,WordWrap属性为True时,情况同上。AutoSize属性为True,WordWrap属性为False时,表示可以水平伸展,但只显示一行信息。Locked属性程序员可以阻止用户改变文本框的内容,用户只可以看文本而不能改变它。这是VisualBasic4.0的新功能。§6图形框(PictureBox)和图象框(ImageBox)PictureBox和ImageBox是用来把图形放入程序里的。PictureBox和ImageBox可以显示几种不同格式的图形。Bitmap文件(.BMP或.DIB)、Icon文件(.ICO或.CUR)、Metafile图元文件(.WMF)、增强型图元文件(.EMF)、JEPG(.JPG)及GIF(.GIF)文件。在VisualBasic里Microsoft大概送给了我们几百个上述前三类文件,它们的路径通常是:c:\vb\bitmaps、c:\vb\icons、c:\vb\metafile。它们的主要属性有:1,设置PictureBox和ImageBox的Picture属性(1)单击PictureBox或ImageBox。(2)按F4键打开属性窗口。(3)单击Picture属性。(4)单击设置框右边的省略号,VisualBasic将显示LoadPicture对话框。(5)选择用户需要的文件,单击Ok键。则VisualBasic将图形装入PictureBox或ImageBox。如果想在程序运行期间装入或删除图形,就需要用程序代码来实现了。我们可以使用LoadPicture函数。例:装入图形imgMyHand.Picture=LoadPicture(“c:\graphics\hand.bmp”)删除图形imgMyHand.Picture=LoadPicture(“”)2,PictureBox和ImageBox的BorderStyle属性如同正文框和标签一样,你可以设计PictureBox和ImageBox的边框。3,Stretch属性和AutoSize属性ImageBox只有Stretch属性,而PictureBox只有AutoSize属性。AutoSize属性设为True,则PictureBox改变自己的大小来适应其中的图形。Stretch属性设为True,则ImageBox中的图形将改变自己的大小来适应外面的边框。§7Line和Shape控件总有一些除了装饰作用没有别的功能的东西。如Line和Shape控件。1,Line和Shape的BorderColor属性一般来说边界颜色是黑的,但你也可显示你喜爱的颜色。在属性窗口里单击BorderColor属性,再单击省略号,VisualBasic将显示一块调色板,在调色板里选择你喜爱的颜色。2,Line和Shape的BorderWidth属性这个属性决定线的粗细。3,Line和Shape的BorderStyle属性这个属性决定线的轮廓。4,Shape的FillStyle属性在形状中我们可能更加喜欢实心的样子,这也可以做到。我们已经了解了窗体,菜单,及十种不同的控件,这正是Windows的基本元素,再加上它们的各种属性,就可以画出各式各样的用户界面了!§6&§7总结:Image、Shape和Line控件有时被称作轻量图形控件。它们需要较少的系统资源,因此比PictureBox控件显示得快并且包含PictureBox中可用的属性、方法和事件的子集。每一个控件都适用于一个特定的目的。1、其它控件的容器:PictureBox2、Printing或graphics方法:PictureBox3、显示图片Image或PictureBox4、控件显示简单图形元素:Shape或Line控件第三章 编程的基础在我们设计完用户界面后,我们就将开始了编写指令代码的过程。这是一个相对枯燥但却是必须的过程。§1VisualBasic编程概述一、事件驱动应用程序简单地说就是当事件发生时程序才工作,否则程序将等待事件的发生。在事件驱动程序中,用户的操作或系统事件执行一个事件过程,这样,程序执行的顺序就由哪一个事件的发生决定,由用户的操作决定。就是用户管理,代码响应。二、事件过程用户界面对事件响应的三个部分是:窗体控件菜单编写程序代码的通常过程是:1,确定哪一个对象(窗体,控件或菜单)做出反应——单击此对象选中它;2,打开代码窗口——简单的方法是按False7键或者双击对象;找到响应的事件;代码窗口的Object列表框可以选择对象,旁边的Proc列表框可以选择对象的事件。如果事件已经有了代码的话,那么在Proc列表框里这个事件名用黑体显示。空的事件代码都由两行组成,如:PrivateSubForm_Load()|EndSub4,编写程序代码。三、变量程序总是要做三件事:1,得到数据;2,处理数据;3,输出数据。在程序运行时,这些数据被储存在变量里,变量可理解为计算机内存条上的一个微观的东西。一旦关机,变量就消失了。变量在VisualBasic里有两种类型:1,程序员建立的变量;2,对象的属性往往也看成变量。变量必须满足:1,字母开头;2,不超过40个字;3,只包括字母,数字,下划线;4,不是保留字。创建变量的方法:1,用Dim语句说明它;2,可以省略声明语句而用变量声明字符生成确定类型的变量。在程序执行时若要生成变量并指定数据类型,可加入下表所示的变量声明字符后缀。符号数据类型举例$StringA$,messageText$%IntegerCounter%,var%&LongPopulation&,colorValue%!SingleDistance!#DoubleExactDistance#3,把一个值赋给一个名称,VisualBasic就把这个名称看成变量。Dim语句的语法是: DimVariableNameAsType例如: DimMyNameAsType部分可以省略,它涉及到我们将要讲的关于数据类型的问题。Dim语句的作用是声明变量并分配存储空间。赋值语句的语法是:VariableName=Value或VariableName1=VariableName2与数学中的等号意义不同,这里等号只表示把后者的值赋给前者,所以,A=A+1在VisualBasic里是合法的。例如:cmdExit.Caption=“Exit” (这是一个改变对象属性的例子)四、数据类型变量可以存放数字或字符串等东西,但是MyName变量并不需要存放数字,所以你可以限制存放的数据类型。你可以规定MyName只能字符串。VisualBasic提供了七种数据类型:整型(Integer)2字节整数,标识符(同上面的变量声明字符)为百分号(%),范围从-32768到32767,运算很快。长整型(Long)4字节整数,标识符为&,范围从-2147483648到2147483647,运算很快。单精度型(Single)4字节浮点数,标识符为!,范围可达38位数字,前7位可靠,运算比整型和长整型慢。双精度型(Double)8字节浮点数,标识符为#,范围可达300多位,但是可靠的只有前16位数字。字符串型(String)标识符为$,在32位版本的VisualBasic4.0中,字符串可容纳高达200兆字节的内容。货币型(Currency)8字节定点数,标识符为@,小数点右边4位,左边15位。日期型(Date)用于存放日期,范围从#January1,100#到#December31,9999#,日期的格式取决于系统的设定,赋值方法是:New=#January1,2000#。字节型(Byte)VisualBasic4.0新增加的数据类型,用于存放0到255的整数。布尔型(Boolean)只有True或False两个值。变体型(Variant)如果你不告诉VisualBasic你的变量是什么类型,VisualBasic就自动把它看成变体型。变体型的意思就是它没有类型,或者是任何类型。如果声明了Variant变量而未赋值,则其值为Empty。例如:DimMyNameAsString事实上,语句DimMyName只是将MyName变量声明为变体类型罢了,因为变体类型是VisualBasic的缺省类型。但是,我们使用数据类型的原因是什么呢?1,使用最小的数据类型可节省内存;2,程序员可以容易地找出每一变量所存放的数据类型;3,可以防止数据类型存放错误引起的错误。例如:PrivateSubForm_Load()DimMyNameAsStringMyName=“DongShan”EndSub变换变量类型有时需要将一种变量类型变成另一种变量类型,下表列出了进行变量类型转换的函数:函数说明函数说明Cbool将变元变成布尔值CLng将变元变成长整型值Cbyte将变元变成字节值CSng将变元变成单精度值CCur将变元变成货币型值CStr将变元变成字符串值CDate将变元变成日期值Cvar将变元变成变体值CDbl将变元变成双精度值CVErr将变元变成错误值CInt将变元变成整型值Val:将变量转成数值型,从左至右转,直到遇到第一个非数字为止。Str:将变量转成字符型,会在最前保留一符号位,正号时前为空格。Format:将按格式返回字符。StrConv:转换字符编码例如要将如下的初始化变量: DimAAsInteger变成双精度值,可用下列函数: B=CDbl(A)用户自定义的数据类型记录 保存多个相同或不同类型数值的结构称为记录(record)。 在VISUALBASIC中定义记录,用Type语句,其语法如下: TypevarType Variable1AsvarType Variable2AsvarType … VariablenAsvarType EndType 例如定义一个名为CheckRecord的记录: TypeCheckRecord CheckNumberasInteger CheckDateasDate CheckAmountasSingle EndType CheckRecord结构可以像普通变量类型一样使用。要定义这个类型的变量,使用如下语句: Dimcheck1AsCheckRecord 要对结构的各个字段访问, 可使用如下语句: check1.CheckNumber=123 check1.CheckDate=#08/14/1996# check1.CheckAmount=240.00 强制的变量声明 VisualBasic并不要求变量声明,但对于编写大型应用程序时,变量声明的确很有好处。 因此VisualBasic提供强制声明的方法,只要在窗体或模块的声明部分加上一条语句: OptionExplicit 这个语句使编译器检查每个变量的声明,如果要用的变量没有声明,则发出一个错误消息!数组 单个变量只能存放单个实体,而数组可以存放一组相关的数据。像变量一样,数组有名称,存放在数组中的数值通过一个索引来访问。 数组的定义必须用Dim语句声明,如下: DimNames(9)AsString'也可以不指定数据类型 Names是保存了10个元素的数组,Names(0)是第一个元素,Names(9)是最后一个元素。数组元素的赋值如下: Names(0)="John" Names(1)="Tom" … Names(9)="Xionghui" 数组的第一个元素的索引可以不是0,可以在Dim语句中指定下限: DimNames(1To16) DimNames(5To16)动态数组有时可能不知道需要多大的数组,这时可以生成动态数组,其长度可以在运行程序时改变。定义动态数组,和平常一样用Dim语句(或Private和Public),但不要指定长度(或维数): DimDynArray() 后面等能确定维数的时候,再用ReDim语句重新确定实际长度(或维数): ReDimDynArray(UserCount) ReDim语句只能出现在过程之中,它是可执行语句。 但每次执行ReDim语句,数组中原先存放的所有当前值会消失。但有时可能想改变数组的长度,而不损失原有的数据,幸好VisualBasic提供了Preserve关键字,它就能作到!例如下面语句将数组加大一个元素而不改变原有数据: ReDimPreserveDynArray(Ubound(DynArray)+1)由于ubound()函数只能返回静态数组或已经重定义上限的数组上标,否则将出错。所以我们常使用:Dimarr()…Redimarr(0)Redimpreservearr(ubound(arr)+1)这样ubound()取得的上标即数组成员数,实际上是将arr(0)闲置,将有效的数组数据写入arr(1)之后的成员中。清除数组Erasearraylist‘参数为数组列表,格式为array1,array2…,该语句清空并释放数组,一般用于动态数组。五、变量的使用范围VisualBasic的变量有三种使用范围。1,局部变量;2,模块级变量,也可以叫做窗体级变量,因为窗体和模块是同级的;3,全局变量。局部变量只存在于说明它的过程里,为说明一个局部变量,应在一个事件过程中说明。模块级变量可存在于这个窗体或模块中,可以被所有窗体内的事件过程所引用和改变,说明模块级变量的方法是:1,按F7键打开代码窗口;2,在Object列表框中选择(general);3,在Proc列表框里选择(declarations);4,用Dim语句说明。全局变量从程序开始时存在至程序结束,不过全局变量的错误也许会导致致命的错误,你不得不读遍程序来寻找到底在说明地方改变了全局变量。创建全局变量的方法是:1,从Insert菜单里选Module项,这个命令为一个BAS模块文件显示代码窗口;2,在Object列表框中选择(general);3,在Proc列表框中选择(declarations);4,用Public语句说明全局变量。六、算术,逻辑,比较运算符1,算术运算尽管一台上万元的计算机看来很高科技,但它在算术运算方面并不比一个几十元的计算器强多少。运算符运算运算符运算+加(也是字符串拼接)\整数除-减(也是取负值)Mod取余数*乘^乘方/浮点数除&字符串拼接2,逻辑运算逻辑运算是对True和False进行操作的运算。VisualBasic将True的值看成-1,将False的值看成0。运算符使用意义And变量1And变量2两个量均为True,才返回TrueOr变量1Or变量2只要有一个量为True,返回值就为TrueXor变量1Xor变量2两个量一个为True,一个为False才返回TrueNot变量1Not变量2简单地把True变为False,把False变为True3,比较运算比较运算是比较两个数或字符串的大小。运算符意义运算符意义<小于>=大于等于<=小于等于=等于>大于<>不等于说明:变体型变量必须使用VarType(Var)判断其是否为空,如返回1则为空。有时候,复杂的运算会把我们搞晕,良好的习惯是加括号。如:x=(5*(8+9))^2,则计算机先处理(8+9),再处理(5*(8+9)),最后才是乘方。再如:x=(5*6)/2,这个括号加得似乎没什么意义,但它使我们清晰地知道是从哪儿开始运算的。七、字符串操作有时程序需要对字符串进行操作,比如从一个文件的完整路径名中找出文件的名称。下面介绍几个常用的函数。1,Len函数返回字符串的长度。如Length=Len(“string”),则Length=6。2,LCase函数,UCase函数LCase函数把字符串变为小写字母。UCase函数把字符串变为大写字母。如:x=LCase(“DONGSHAN”)x=UCase(“visualBasic”)3,Left函数,Right函数语法是:Left(VariableName,N)Right(VariableName,N)Left函数从字符串的左边提出N个字符。Right函数从字符串的右边提出N个字符。4,Mid函数语法是:x=Mid(VariableName,n,m)Mid函数从VariableName字符串的第n个字符开始取出m个字符。5,Instr函数语法是:Instr(VariableName1,VariableName2)Instr函数从VariableName1里找出VariableName2的位置。如:x=Instr(“ABCD”,”CD”),此时x=3。如果计算机没找到要找的字符串,则这个函数返回0。6,LTrim函数,RTrim函数,Trim函数LTrim函数将去掉字符串前的空格。RTrim函数将去掉字符串后的空格。Trim函数将去掉字符串前后的空格。如:x=RTrim(“John“),此时x=“John”。7,Val函数语法是:x=Val(VariableName)这个函数将字符串里的数字字符串转化为数字。如:Y=Val(“123”),则Y=123。当VisualBasic发现下一个字符不是数字时就停止继续转化。8,Str函数与Val函数相反,Str函数将数字转化为字符串。语法是:x=Str(VariableName)八、常量及注释1,使用常量如果我们编一个程序从每笔收入中拿出40%用于饭卡的消耗,则在程序中我们会总是用到0.4这个数字。这时粮食涨价了,我们不得不把0.4全都改成0.5,这就显得非常麻烦。我们本可以定义并使用一个常量为0.4,在涨价时把它小小调整一下就可以了。常量命名的要求与变量一样。常量的使用范围也与变量一样,分为:局部常量(在过程里用Const说明)、 模块级常量(在窗体,模块的声明区用Const说明)、全局常量(在模块的声明区用PublicConst说明)2,使用注释用“‘“注释。如:‘ThisSubisusedtogetWindowsversion撇号右边的东西VisualBasic通常用绿色的字来显示,而且VisualBasic将忽略注释的东西。在VisualBasic4.0所附的示例程序里使用了大量的注释,这样使其他人(也包括自己)能更好地读懂程序,所以使用注释是一个好习惯。注释的忽略性也有一些小用处,如:x=(3.5^2-4)*(5+6.73*7\2)-10.89现在你需要测试这一语句是否是必要的,于是你把它删除,再运行看是否能得出正确的答案,如果它是不必要的,那就很顺利,如果它是必要的,你就不得不痛苦地再输入一遍而且还有输错的可能。现在你可以选择把它注释掉,这样程序运行将忽略它的存在,也可达到上面测试的目的。§2VisualBasic的语句一、条件选择语句人们面临选择的时候精神会变得脆弱,这就是为什么我们总是轻信偷看来的答案。因此,选择对于人类来说是一件复杂的事情,而对于计算机来说,则非常简单。它头脑简单,因而永远不会发出哈姆雷特式的疑问——“是生,还是死?”1,条件式条件式必然代表一个值,是真(True)或者是假(False)计算机可以检测出这个值以做出相应的行动。下面就是判断的例子,其中加下划线的部分就是指条件式。 IfLove=TrueThen...与之相同的简略的形式是: IfLoveThen...而 IfLove=FalseThen... 与 IfNotLoveThen... 的意义是相同的。条件式中可加入逻辑运算符,如: Ifx<20Andx>15Then 表示当15<x<20程序将做什么。 Ifx<15Orx>20Then 表示当x<15或x>20时程序将做什么。2,If-Then语句语法是:IfConditionThenInstruction例如: Ifn>25ThentxtABC.Text=“ABC”3,If-Then-EndIf语句IfConditionThenInstruction1Instruction2EndIf这种结构可指示计算机执行一串语句。4,If-Then-Else语句IfConditionThenInstructions1ElseInstructions2EndIf这种结构指示计算机在条件不成立时应该做的事,这样保证了计算机至少执行一些语句。5,If-Then-ElseIf语句IfCondition1ThenInstructions1ElseIfCondition2ThenInstructions2ElseIfCondition3ThenInstructions3ElseInstructions4EndIf类似这样的完整的语句可做出多次判断,又保证计算机至少执行一些代码。6,SelectCase–case…case…endselect语句被选择的值为许多定值时,这个语句就更有用一些。SelectCaseVariableName/objectCaseValue1‘可以是变量值或对象名Instructions1CaseValue2Instructions2Caseelse‘除上述情况外的其他情况Instructions3EndSelect7,嵌套结构我们可以把许多各式各样的条件语句嵌套在一起,而且这种嵌套在理论上没有限制。但事实上嵌套使用得越少,代码就越容易被理解。在嵌套时最好使用便于观察的缩排的格式。如:SelectCaseGradeCase"95"IfClass="31"ThenDorm="1106-1108"ElseIfClass="33"ThenDorm="1104-1105"EndIfEndSelect7,选择函数IIf(expression,,)根据表达式逻辑值,返回两个参数中的一个Choose(expression,,,...)根据表达式整数值,返回多个参数中的对应位置的那个。二、循环语句计算机擅长反复地做一件事,循环语句将发挥它的这种优势。1,Do-Loop循环Do-Loop循环基本上是一个死循环,所以需要在循环时判断一些条件。(1)DoWhile循环(当Condition条件为真时执行循环)。DoWhileConditionInstructionsLoopWhile也可以放在Loop语句上。(2)Do-LoopWhile循环(先执行一次程序体,再判断条件为真则继续执行循环)。DoInstructionsLoopWhileCondition这两种循环的不同之处是:DoWhile循环先判断条件,所以,DoWhile循环可能一次都不执行。DoLoopWhile循环先执行指令,再判断循环条件。所以DoLoopWhile循环至少执行一次指令。但它们都是当一定条件为真时的循环。(3)DoUntil循环(条件为真即“退出”循环)。DoUntilConditionInstructionsLoopDoUntil先判断条件,所以循环可能一次都不执行,它是当一定条件为假时的循环。DoUntil等同于:DoWhileNotConditionInstructionsLoop(4)Do-LoopUntil循环(执行程序体,直到条件为真时退出)。DoInstructionsLoopUntilConditionDoLoopUntil先执行指令再判断循环条件,所以指令至少被执行一次。DoLoopUntil是当一定条件为假时的循环。2,计数的循环For-Next(1)For-Next循环必须有一个控制变量,这个控制变量一般为整型。语法是:ForCounter=StartToEndInstructionsNextCounter这里的Counter就是控制变量。如果想运行5次,可用下面的循环:Fori=1To5InstructionsNexti这时,每循环一次,i的值就加1。(2)向前向后计数ForCounter=StartToEndStepIncrementInstructionsNextCounterIncrement表明每次循环控制变量所加的值。如下面代码也可循环5次:Fori=5To1Step-1InstructionsNexti只有当Counter<=End时循环才执行,当Counter>End的时候循环就不执行了。所以Fori=1To10Step7InstructionsNexti循环将执行两次,一次是当i=1时,一次是当i=8时。最好不要在循环内改变控制变量的值,这样往往会导致逻辑上的错误。(3)对象的计次循环Foreachelementingroup…..next‘针对一个数组或集合中的每个元素,重复执行一组语句。可参见Csdn中Foreach….next语句或Printer对象与Printers集合。3,与条件语句一样,循环语句也可以嵌套。如:DoWhileConditionFori=1To5InstructionsNextiLoop循环总是先从内部开始的。比较:Fori=1To4 Fori=1To4Forj=1To5 Forj=1To5Nextj NextiNexti Nextj是允许的 这种For-Next的缠绕是不允许的4,从循环中快速退出通过使用命令ExitDo和ExitFor,我们可以在循环未结束前跳出循环。但我们应该保证所需的动作完成后再跳出来,否则也许会遇到新的错误。而且不要试图用Goto语句从循环外跳入循环。下面的代码可以检测出3至20之间的质数。其中使用了循环的嵌套及条件语句,并且当发现i不是质数时立即用ExitFor转向对下一个数的检测。SubForm_Click()Dimi,j,xAsIntegerFori=3To20x=FalseForj=2Toi-1If(iModj)=0ThenExitForIfj=i-1Thenx=TrueNextjIfxThenPrintiNextiEndSub5,遍历对象(如:所有打印机、窗体等)使用ForEachobjectIncollection语句来遍历集合中的对象(1)、遍历所有窗体‘MDI窗体Load事件中无法列出子窗体,因为它们还没加载。‘判断是否mdi子窗体只能看name属性,因为MDI窗体没有Mdichild属性‘方法一(遍历含MDI窗体)DimfrmAsvb.FormForEachfrmInFormsDebug.Printfrm.CaptionNext‘方法二(遍历不含MDI窗体)DimiFori=Forms.Count-1To1Step-1Debug.PrintForms(i).CaptionNext(2)、遍历打印机(VBMSDN自带例程)DimXAsPrinterForEachXInPrintersIfX.Orientation=vbPRORPortraitThen'设定为系统缺省打印机。SetPrinter=X'终止查找打印机。ExitForEndIfNext三、建立过程与函数如同常量的定义一样,有时不仅仅是几个数字反复出现在程序中,而且是很多段代码在做几乎同样的事,如果有一些通用的代码可供调用的话,那么程序就会简练得多,而且更为清晰,这就是过程与函数。过程和函数保存在FRM文件和BAS文件里。若一个过程保存在BAS文件里,那么这个过程可供程序里所有的代码调用;如果一个过程保存在FRM文件里,那么这个过程只能被本窗体里的代码调用到。创建过程或函数的简单方法是选择Insert菜单的Procedure项。过程名,函数名的命名规则与变量名,常量名的命名规则一样。1,过程结构Subsubname(argumentlist)InstructionsEndSubargumentlist指的是参数列表,所谓参数,就是指过程操作所需的指导条件。如下面过程:SubPrintHello(nAsInteger)DimiAsIntegerFori=1TonPrint"Hello"NextiEndSubn参数就是指导这个过程打印“Hello”的个数。当有许多参数时,可用“,”将它们分开。如果在Form_Click事件过程里调用PrintHello过程,就可用键入: CallPrintHello(5) ‘其中Call是VisualBasic的保留字 PrintHello5后一种省略Call和括号的方法使这个过程看起来更象一个VisualBasic的语句,所以我们可以这样认为:建立好的过程可以当作语句来使用。2,函数结构函数结构与过程结构基本上是一样的。Functionfunctionname(argumentlist)AstypeInstructionsEndFunction函数就是有返回值的过程,它自己是有数据类型的。但Astype部分是可以省略的,这时函数的返回值将是变体类型的值。在调用没有参数的函数时也必须加括号。如:FunctionTotal(aAsInteger,bAsInteger,cAsInteger)AsIntegerTotal=a+b+cEndFunction调用时可以这样:Answer=Total(10,20,30)又如:FunctionCurrentTime()AsStringCurrentTime=TimeEndFunction调用时应该这样:s=CurrentTime()我们看出建立好的函数与VisualBasic本身的函数在调用时也没有什么不同。程序员可以建立自己的过程与函数库以加快编程效率。3,传值方式当过程内改变了参数的值时,VisualBasic并不会产生错误信息,但这样可能引起一些混乱,如:SubPassedNotByValue(xAsInteger)x=x+1EndSub在事件过程中调用:SubForm_Click()DimiAsIntegeri=1000PassedNotByValueiPrintiEndSub结果会是什么呢?是1001。在复杂的过程里不小心改变了参数的值,而调用过程的代码里这个参数又不应该改变的情况是很有可能发生的。改进的方法是:SubPassedByValue(ByValxAsInteger)x=x+1EndSub调用改为:SubForm_Click()DimiAsIntegeri=1000PassedByValueiPrintiEndSub结果将是1000,这就是传值方式,传值方式在参数行开始处加上ByVal保留字。属性总是用传值方式传递的。4,程序跳转在程序中加入OnexpressionGoToline(任何以字母开头以:结尾的标识处)或OnErrorResumeNext或ExitDo/Sub/function/For等。5,自定义过程默认参数在定义过程参数前加上Optinal关键字即表示该参数可省略,如:Sublookfor(Optionalaasstring=”OK”)6,响应外部过程DoEvents()响应其他程序及系统的事件,在过程或循环中插入该语句,可避免因程序忙而无法响应外部请求。§3VisualBasic的对象或类静态创建对象一般有两种:一种是直接将对象从工具箱中拖放到窗口中,另一种是在程序中作用语句(dim/public/private等)声明后再使用NEW关键字启用。还有一种动态加载对象的方法创建对象:先将对象使用语句声明为object,然后使用Setobj=CreateObject()/Getobject()语句获得对象并启用。对象或类的使用格式为:Object.方法/属性或Object.集合/子对象(“成员”).方法/属性给对象或类赋值格式为:SetObj=OtherObject对象使用完毕后应关闭(obj.close或unloadobject),或使用Setobject=Nothing彻底释放对象。创建对象例:方法一、将对象拖动到窗口中,这种方法一般适用于工具箱中的可见对象,如:基本控件或ActiveX控件/部件。方法二、使用语句,这种方法一般适用于工具箱中不可见的对象或类,如:Activedll等。静态加载(需先在菜单“工程—引用”中引用该对象)dimCnAsNewADODB.Connection‘等效于publiccnasadodb.connection加setcn=newadodb.connetiondimRsAsNewADODB.Recordset动态加载(无需引用,只需语句)DimCn,RsAsObjectSetCn=CreateObject("ADODB.Connection")SetRs=CreateObject("ADODB.Recordset")‘CreateObject()函数所指定的对象类应该存放在系统目录中的DLL库中或是在系统中注册过的DLL。‘GetObject()函数可以指定对象所在的文件和类,从而加载对象。有关函数详见Csdn中相关内容。第四章 Windows95的新控件VisualBasic的输入输出§1ToolBar(工具条)控件ToolBar就是那些在菜单下面的图形钮,这已经成为Windows应用程序的样板。建立工具条在工具箱里单击工具条图标,拖到窗体的任何位置,VisualBasic自动将ToolBar移到顶部。按F4键打开属性窗口。双击(Custom),打开ToolBar属性窗口。选择Buttons标签。单击Insert按钮,VisualBasic就会在你的工具条上显示一个空按钮,现在为你的每一个按钮重复这一步。单击确定按钮。如果你想把按钮分组,首先生成一个分隔的按钮,再在刚才提到的对话框里将这个按钮的Style属性改为3-Separator。为工具条增加图画在VisualBasic工具箱里单击ImageList图标,并将它拖到窗体的任何位置(位置不重要,因为它总是不可见的)。按F4打开属性窗口。双击(Custom),打开ImageListCtrl属性窗口。选择Image标签。单击InsertPicture,在现在图形的对话框里选择你想使用的位图或图标,然后单击打开按钮。为每个你想添加图形的工具条按钮重复此步。单击确定按钮。单击你的工具条,按F4,双击(Custom),显示ToolBar属性对话框。选择General标签,在ImageList框里选择刚才添加的ImageList控件。选择Buttons标签,单击紧挨Index框的向左或向右箭头以选择一个按钮序号。出现在工具条最左边的按钮序号为1。在Image框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个图形,输入为2,则显示刚才ImageList控件里的第二个图形。为每个按钮重复第10和第11步。单击确定按钮,现在VisualBasic就会在工具条上显示精美的图形了。为工具条添加文本信息在刚才提到的ToolBar属性对话框中选择Buttons标签,在Caption框里输入你想显示在按钮上的文本。添加ToolTipsToolTips是一种当你点到工具按钮是弹出的小标签。ToolTips很方便,可以告诉那些新手每个按钮是干什么用的。在刚才提到的ToolBar属性对话框中选择Buttons标签,在ToolTipText框里输入你想作为ToolTip的文本。如何编写代码双击你的工具条,以下面的格式输入代码就可以了。PrivateSubToolbar1_ButtonClick(ByValButtonAsButton)SelectCaseButton.IndexCase1'CodetofollowifuserclicksthefirstbuttonCase2'CodetofollowifuserclicksthesecondbuttonCase3'CodetofollowifuserclicksthethirdbuttonEndSelectEndSub§2StatusBar(状态条)控件和ToolBar一样,选中状态条,按F4键进入属性窗口,双击(Custom)可以进入主要的设置窗口SBarCtrl属性窗口。选择面板形状在SBarCtrl属性窗口里选择General标签,在Style列表框里选择多面板(缺省形式)或单面板简单文本形式。添加或删除状态条面板在SBarCtrl属性窗口里选择Panels标签,单击Insert按钮添加一个面板,或单击Remove按钮删除一个面板。在单面板里显示文本在SBarCtrl属性窗口里选择General标签,在SimpleText框里输入你想显示在状态条面板里的文本。用代码显示的方式是: StatusBar1.SimpleText="Newstringtoappear"四、在多面板里显示文本或图形在SBarCtrl属性窗口里选择Panels标签,用Index旁的按钮选择面板序号。在Text框里输入你想显示在状态条面板里的文本。如果你想加入图形,单击Browse按钮打开一个图形选择对话框,选择你想加入的图形,然后单击打开按钮。最后按确定按钮。用代码显示的方式是:StatusBar1.Panels(x).Text="Newstringtoappear"如何编写代码如果是一个单面板状态条,当用户单击状态条时,只需用下面的事件过程来响应:PrivateSubStatusBar1_Click()EndSub如果是一个多面板状态条,就需要鉴别用户单击的是哪一个面板,可用下面的事件过程来识别用户所单击的面板:PrivateSubStatusBar1_PanelClick(ByValPanelAsPanel)SelectCasePanel.IndexCase1'CodetofollowifuserclicksthefirstpanelCase2'CodetofollowifuserclicksthesecondpanelCase3'CodetofollowifuserclicksthethirdpanelEndSelectEndSub§3ProgressBar(进程条)控件进程条的三个属性Min属性代表进程条全空时的值,缺省时为0。Max属性代表进程条全空时的值,缺省时为100。Value属性代表进程条当前的值(不用在属性窗口里找这个属性,它不出现在属性窗口中,但它的确存在),它大于Min属性,小于Max属性。改变Value属性的值将改变进程条的进度显示。为了了解进程条的功能,在窗体里添加一个进程条和一个命令钮,双击命令钮进入代码窗口,键入如下代码:PrivateSubCommand1_Click()IfProgressBar1.Value<ProgressBar1.MaxThenProgressBar1.Value=ProgressBar1.Value+5ElseProgressBar1.Visible=False‘当进程条满了的时候让进程条消失EndIfEndSub§4Slider(滑块)控件一、选择滑块的外观Orientation属性决定滑块的方位,可以是垂直的或水平的滑块。TickStyle属性决定滑块标记的样子。TickFrequency属性规定了沿着滑块的标记的间隔大小,缺省的状态是1,表明每个可能值都出现标记,如果你把值设置为3,则每三个可能值出现一个标记。滑块的Min,Max,Value属性这三个属性和进程条的这三个属性差不多,Min,Max表示滑块的最小和最大值,Value表示进程条的当前值。三、滑块的LargeChange,SmallChange属性LargeChange规定了当用户用鼠标单击滑块时,滑块可移动的距离。SmallChange规定了用户按左箭头或右箭头时滑块的移动距离。§5TabStrip控件(象笔记本书签或一组文件夹的标签)和ToolBar一样,选中TabStrip,按F4键进入属性窗口,双击(Custom)可以进入主要的设置窗口TabStrip属性窗口。一、设置样式在TabStrip属性窗口里选择General标签,在Style列表框里选择Tabs或Buttons样式。二、规定TabStrip的标题,ToolTips和在TabStrip属性窗口里选择Tabs标签,在Caption框里输入标题。在TabStrip属性窗口里选择Tabs标签,在ToolTipText框里输入ToolTip。增减标签总数在TabStrip属性窗口里选择Tabs标签,单击InsertTab按钮增加标签,单击RemoveTab按钮删除标签。在TabStrip上显示图形1,在窗体里拖入一个ImageList控件,2,按F4打开属性窗口。3,双击(Custom),打开ImageListCtrl属性窗口并选择Image标签。4,单击InsertPicture,在现在图形的对话框里选择你想使用的位图或图标,然后单击打开按钮。为每个你想添加图形的Tab按钮重复此步。单击确定按钮。现在ImageList里存储了你需要的图形。选择你的TabStrip,进入TabStrip属性窗口并选择General标签,在ImageList列表框里选择ImageList1。现在选择Tabs标签,单击紧挨Index框的向左或向右箭头以选择一个Tab序号。在Image框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个图形,输入为2,则显示刚才ImageList控件里的第二个图形。单击确定按钮。用户响应可用类似下面的代码来识别用户在哪一个项目上单击。PrivateSubTabStrip1_Click()SelectCaseTabStrip1.SelectedItem.IndexCase1'CodetofollowifuserclicksthefirsttabCase2'CodetofollowifuserclicksthesecondtabCase3'CodetofollowifuserclicksthethirdtabEndSelectEndSub在TabStrip上放置其它控件在用户选择了标签后,TabStrip要求你编写代码来显示或隐藏控件。下面的代码上是一个TabStrip上有一个命令钮和一个选项钮的例子,当用户选择了第一个Tab时,选项钮出现,当用户选择了第二个Tab时,命令钮出现。PrivateSubTabStrip1_Click()SelectCaseTabStrip1.SelectedItem.IndexCase1Command1.Visible=FalseOption1.Visible=TrueCase2Command1.Visible=TrueOption1.Visible=FalseEndSelectEndSub§6VisualBasic的输入机制程序的基本操作就是数据的输入,数据处理和数据的输出。VisualBasic的可用于输入的控件主要有:正文框TextBox、确认框CheckBox、选项钮OptionButton、列表框ListBox、组合框ComboBox、滚动条ScrollBar、通用对话框控件。还有一个函数叫InputBox函数,也可用于数据的输入。一、通过正文框输入数据1,我们只要取得正文框的Text属性就可以对其进行操作了。如下面代码可将Text1正文框的正文变成大写输出至Text2正文框。PrivateSubForm_Click()Text2.Text=UCase(Text1.Text)EndSub二、通过确认框和无线钮输入数据我们只要检测到CheckBox和RadioButton的Value属性值就可以知道它们是否被选上了。通过列表框和组合框输入数据列表框ListBox和组合框ComboBox在Windows的Open,SaveAs对话框里最为常见。组合框又包括三种类型,这三种类型要在它的Style属性里设置。列表框仅仅把可以选择的项目列出来,而组合框里有的类型可以允许用户输入数据。它们的异同是:名称是否有下拉选项是否允许用户输入列表框否否组合框类型0是是组合框类型1否是组合框类型2是否2,列表项目的增减使用AddItem,RemoveItem语句。通常将项目增减的语句放入Form_Load事件里。ListBoxName.AddItemitemComboBoxName.AddItemitemitem是新项目名称,必须是字符串类型,非字符串类型可通过Str函数或Format函数来转换。列表框,组合框的每一项目都有一个Index值,第一个项目的Index值是0,第二个是1,依此类推。删除项目可通过删除其Index值来实现。ListBoxName.RemoveItemitemComboBoxName.RemoveItemitem如:ListBoxName.RemoveItem0则删除了第一项,这时原来的第二项就变成了第一项。在VisualBasic4.0里程序员终于可以在设计阶段设定列表项目了。方法是:在属性窗口选择List属性,将出现一个下拉列表,在列表中输入第一项,按Ctrl+Enter,输入第二项……,最后用Enter结束。3,取得列表框,组合框的数据可以通过取得Text属性或通过取得ListIndex属性来判断哪一项被选择了。ListIndex属性的值也同样是第一个为0,第二个为1……如:IfList1.Text=“VisualBasic”ThenInstructionsIfList1.ListIndex=1ThenInstructions组合框有时允许用户自己输入数据,这时所输入数据的ListIndex值为-1。通过滚动条ScrollBar取得数据在VisualBasic的工具箱里有两种滚动条:一种是垂直的,一种是水平的,它们的差异无非是摆放的方向不一样。1,滚动条的主要属性及事件(1)Min,Max属性Min属性决定滚动条最左端或最顶端所代表的值。Max属性决定滚动条最右端或最下端所代表的值。(2)LargeChange,SmallChange属性SmallChange决定在滚动条两端的箭头钮上单击时改变的值。LargeChange决定在滑块上方或下方区域单击时改变的值。(3)Value属性Value属性代表当前滑块所处位置的值,这个值由滑块的相对位置决定。(4)Change事件当滑块位置发生变化时就引发了Change事件。2,取得滚动条的数据滚动条并不是一个数据输入的好控件,因为你无法从滚动条上直接看出输入的数据,但它的优点是可以表示一定范围里的相对位置。为了得到数据,只要取得滚动条的Value属性就可以了。五、InputBox函数InputBox函数提供一个简单的对话框供用户输入信息。在把其它版本的BASIC程序移植到VisualBasic时,InputBox函数通常用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论