下载

0下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 VB基础入门教程

VB基础入门教程.doc

VB基础入门教程

jiaoya
2017-09-30 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《VB基础入门教程doc》,可适用于综合领域

VB基础入门教程VB目录(提示:按ctrl,并单击鼠标可以跳到相应页)我们需要什么第二章:事件、属性及数据类型第三章:VB语言第四章按钮(一)第四章按钮(二)第五章菜单第六章输入(一)第六章输入(二)第六章输入(三)第七章输出附录VB教程我们需要什么我们需要什么,当我们在一个精彩的游戏世界中游历了一番之后或是惊叹于某一工具软件的小巧精致之余多少总会产生些许编程的冲动。编程吗在以前如果你对电脑还是一个门外汉那实在是一件可望而不可及的事情。如果运用基于DOS下的编程语言譬如C、Qbasic、Pascal等等真不知何年何月才能有所成就。编程是需要天赋的你必须在大脑中对整个程序有一个清晰的轮廓一个高效的流程这并不是每个人都能做到的你必须思之慎之这也使编程变成一件最枯燥无味的事情。但在第四代计算机语言(可视化编程)出现后可以确切的说它开发了人们的更多天赋并不局限于那些头脑异常清晰的人每一个人都可以发现自己也可以编出一些从前不敢问津的程序想象力的充分发挥才是第四代语言的精粹。VisualBasic(以下简称VB)可以说是可视化语言的先驱了而且它也是可视化程度最高的一个从几年前VB诞生之日起到现在它已经经历了五个版本而且现在微软正在紧张的进行着VB的研制、测试这么高的更新率不外乎说明两个问题:用户对VB的热衷微软对VB的重视。不可否认微软对市场的预测能力是极为高明的而它强大的技术、财力支持也使它在许多以前未进入的领域在不长的时间内有成为最有力的竞争对手如IE之于浏览器领域《帝国时代》之于游戏都是最好的例证。对于VB现在也有一个很强的竞争对手――Delphi有人把它称作VB杀手这显然有偏激之处VB的确有它的不足之处但Delphi又何尝不是呢而且以微软对VB的倾心VB的功能必然会越来越强大。VB的诞生VB的出现可以说是MicrosoftWindows的日渐成熟的必然产物。MicrosoftWindows为程序员和最终用户提供了一个共同的人机界面。对用户Windows提供了一个图形鼠标的操作环境该环境对所有的应用程序都一样对于程序员Windows提供了一组预定义工具称之为MicrosoftWindows的软件开发工具箱(SDK)该工具能使程序员建立一个与Windows界面相同的应用程序而且程序员不必关心最终用户的硬件配置情况。在这一开发环境中程序员唯一困难的是MicrosoftSDKk()MsgBox"ClickME按钮被按下",vbDefaultButton,"提示"EndSub据我所知有许多用户有使用快捷键的习惯注意细节上的问题能够使将来你的程序得到更多人的欣赏不是吗,第五章菜单我们经常在Windows操作里遇到各种各样的菜单菜单的操作把各种命令结构化、分分类化也节省了命令所占的空间从作用上来讲菜单类似于按钮但它只有一个事件――Click。VB作为Windows下的可视编程工具菜单的设计当然很容易实现VB按下CtrlMVB以上的版本请按下CtrlE便可呼叫出菜设计的窗口无论VB的版本这个窗口的样式是大同小异的请见图,。前面说过菜单相当于简单的按钮它有几个属性其中的大部分我们都曾经见过包括Name、Caption、Index、Checked、Enabled、Visible、快捷键和热键等等。其中Name是必须的。下面请跟我一起设计第一个菜单。首先在Caption添入“文件”Name为“mnuFile”按下Next按钮这样就建立了第一级菜单注意菜单设计窗口的左中有四个箭头按下向右的箭头出现了一排小点如图,在VB里这叫缩排这样就可以开始建立第二级菜单。小知识:实际上我们在生活就中经常用到缩排写文章时开头要空两格就是一种缩排在编写程序时更需要缩排这样使程序结构化便于观察当然菜单设计里的缩排有更多的用处。接着填写下一菜单项Caption为“新文件”Name为“mnuFileNew”按下Next键。小知识:VB一共如许建立级子菜单如图,尽量不要建立这样的菜单要知道藏在越深处的菜单项越难以被人发现一个友好的程序界面应该让用户马上找到需要的命令。接着重复以上步骤创建以下三个菜单项:Caption保存NamemnuFileSaveLevelCaption另存为NamemnuFileSaveAsLevelCaption载入NamemnuFileLoadLevel我们在菜单里还经常看到把不同项分开的分隔条在VB里也很容易做到把Caption设为“”(减号)Name为mnuBar。最后增加这个菜单条的最后一项Caption为“退出”Name为mnuFileExit。现在可以退出菜单设计窗口菜单如图,。怎么样经过几章的学习是不是觉得Windows世界也不是那么神秘,也对也不对。的确我们很轻易的实现了这么多的功能但如果你仔细想想我们的程序还什么也不会做呢~可以说是徒有其表要实现强大的功能恐怕要学很长很长时间而现在仅仅是个开头并不是想入非非的时候我们还要继续努力~现在再次按下CtrlE重回菜单设计窗口接着添加菜单。(按下向左的箭头可以使菜单上升一级Level代表菜单的级别)根据下表添加新的菜单项:Caption编辑NamemnuEditLevelCaption剪切NamemnuEditCutLevelShortCutCtrlXCaption复制NamemnuEditCopyLevelShortCutCtrlCCaption粘贴NamemnuEditPasteLevelShortCutCtrlVCaption关于NamemnuAboutLevel其中ShortCut就是平常我们说的热键你可以在菜单设计窗口中找到设置一个你需要的组合键这样不论窗口的焦点处于何处菜单在第几层只要按下热键就相当于调用了该项的Click事件。结果如图,。从Win以来程序里引入了鼠标右键功能使鼠标有了更大的用处在VB里我们也很容易实现。打开FormMouseDown事件该事件有两个参数:Button当按下左键时Button返回当按下右键时Button返回Shift是指在点击鼠标时按下的键盘键如Shift、Ctrl、Alt这些我们将在以后讨论但很难避免在一章中不涉及到不该涉及的内容学习时有个大概的理解即可。下面在该事件里添加代码(效果如图,):PrivateSubFormMouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=ThenPopupMenumnuEdit,vbPopupMenuLeftAlignElseExitSubEndIfEndSub在上面的代码中我们用到了PopupMenu方法它的语法是:objectPopupMenu菜单名标记X坐标Y坐标标记是用来表明弹出菜单位于鼠标指针位置的它有三个值:vbPopupMenuLeftAlign位于鼠标左vbPopupMenuRightAlign位于鼠标右VbPopupMenuCenterAlign位于鼠标中部X、Y值可以用来制定菜单弹出的位置可以省略。关于菜单的Visible、Enabled等属性请自己尝试。第六章输入(一)我们为什么要设计计算机程序呢当然是为了计算机能为我们完成工作但是要完成不同的任务我们就必须对计算机下达命令然后计算机在把信息返馈回来――任务是否完成。以上就是所谓的人机对话或交互功能尤其是在Windows操作里我们需要进行更多的输入工作我们需要填写各种各样的表格设置程序的重要参数把数据输入给计算机再又它完成既定的工作就是今天我们本章要重点讨论的问题――在VB中如何建立完整的输入机制。在VB中提供了一个函数InputBox能帮助我们建立一个最简单的输入窗体语法如下:InputBox(prompt,title,default,xpos,ypos,helpfile,context)该函数返回一个字符串表达式其参数含义为:(“”表示可缺省)prompt――字符串表达式最大长度为字符窗体上的提示部分。Title――字符串表达式显示标题栏里的文本。Default――字符串表达式窗体中文本框的缺省值。xposypos――数值表达式以Twips为单位指定窗体出现在屏幕上的位置。helpfile――字符串表达式是帮助文件的完整路径。Context――数值表达式指定适合的帮助主题。可能你看了上面的说明并不明白那么下面我们就用Input语句完成一个最简单的程序。小知识:屏幕坐标在计算机的屏幕上也有一个类似于我们在中学里常用到的直角坐标系之不过它的原点不在左下而是在屏幕的右上角屏幕的最右上方坐标为()它的横坐标和我们的习惯是一致的而纵坐标则是越向下越大不仅是屏幕所有的对象里都是一样需要记清。见图,新建一个项目(project)在Formload里填写一行代码:a$=InputBox("举荐你最欣赏的网站","最佳网站投票","VB小驿")’按下F运行程序在Form出现之前先会弹出一个输入对话框如图,。这时无论你按下OK还是Cancel都是没有区别的因为我们并没有对输入数据进行处理下面我们完成一个更加复杂些的程序。新建一个项目文件把窗口布局成类似于图,的结构各对象属性如下表:FormCaption“最佳网站投票演示”BorderStyle’不可调整大小ControlBox’FalseFrameCaption“输入框属性“LabelAutosize’TrueIndex至至Caption“提示语句”“标题”“缺省网站”“X坐标”“Y坐标”“”IndexEnabledFalseIndexEnabledFalseTextText“”’(空字符串)Index至IndexTextIndexTextCheckCaption“指定输入框位置”ButtonIndex,IndexCaption“显示输入框”Caption“退出程序”本例中出现了一个Frame控件它是一种框架可以用来把窗体分成好几个部分首先应该在窗体上画出Frame控件然后再选择相应的控件在Frame上描出轮廓使其是出现在Frame之上本例中除去两个按钮其余都在Frame上面。本例中用到了几组控件数组其创建方法是在选定的点右键选择Copy再在窗体其他部位单击右键选择Paste即可注意若要使粘贴的对象在Frame上请在Frame上单击右键选择Paste。我们通过这个窗体对输入框进行完整的控制原理是这样的:当我们把窗体中要填写的对输入框的参数完成后按下OK按钮就会出现我们设计的那个输入框我们从输入框退出时则返回我们投票的结果代码如下窗体初次被装入时Label()、Label()和Text()、Text()的Enabled属性都是False我们需要通过改变Check的Value(被选中未选中)是他们有效或无效。声明全局变量(General):DimPosChkAsBoolean'检查X、Y坐标是否有效CheckClick事件:PrivateSubCheckClick()IfCheckValue=ThenLabel()Enabled=TrueLabel()Enabled=TrueText()Enabled=TrueText()Enabled=TruePosChk=TrueElseLabel()Enabled=FalseLabel()Enabled=FalseText()Enabled=FalseText()Enabled=FalsePosChk=FalseEndIfEndSub接着在按钮中填写代码:PrivateSubCommandClick(IndexAsInteger)DimPrompt,Title,DefaultAsStringDimxPos,yPosAsIntegerSelectCaseIndexCasePrompt=Text()TextTitle=Text()TextDefault=Text()TextIfPosChkThenxPos=Val(Text()Text)yPos=Val(Text()Text)a$=InputBox(Prompt,Title,Default,xPos,yPos)Elsea$=InputBox(Prompt,Title,Default,xPos,yPos)EndIfLabel()Caption="谢谢您的投票您的选择是"a$"~"CaseUnloadMeEndSelectEndSub按下F运行程序你会看到这样的结果。图,,。是不是有种受骗的感觉啊哟哟可不是我的错就是这么容易嘛~从刚才的例子里我们接触了一些VB中的输入方法其实数据输入不仅仅局限于向Text框中输入数据数据的输入还有许多其他的方法譬如前面的Check也是向程序发出一定的信息只要是通过操作向计算机发布命令就可以叫做输入下面我们来一一介绍。首先要介绍的当然是输入用到最多的Text框。Text没有Click事件它的缺省事件是Change也就是当Text框里的一旦内容改变就会激发该事件发生还是让我们用实例说话吧。Text有几个特殊的属性一是MultiLine(多行)属性MultiLine属性为False的时候不论文本有多长它都会在一行里显示下去换行符无效当它为True的时候字符串显示到Text框边缘的时候就会自动换行。另一个与之配合的属性是ScrollBars属性它有个值到分别是没有滚动条水平滚动条垂直滚动条和二者都有它是一个只读属性也就是说只有在程序设计过程中才能改变而不能在程序运行中改变但是我们可以通过API解决运行中改变的问题我们放在以后再讲。PasswordChart属性我们经常在程序操作中遇到要填写密码的部分为了保密起见在屏幕上显示的字符一般“*”表示并且这时是无法用剪贴板的这在VB中非常容易做到把PasswordChart中设一个用来代替字符串的字符即可并不一定是“*”哦。下面我们完成一个有趣的小程序是我以前遇到过的一个程序我对其进行了部分修改。程序的意思是这样的假设你是一个司机应超速被警察扣留现在需要你向警察陈述你的理由如果你的话能打动他就可以免交罚金如果你在规定的字数里没有说出什么有震撼力的话那老兄你可就惨了交钱吧。J这个程序比原来的英文程序有了几点不同第一由于用到的是双字节中文的中文所以对于检测中文字符和英文有很大不同第二原来的英文程序不管你说多少警察依然是依法从事本例中给了犯规者的免罚机会(有点无聊„„L不过也是为了学一些东东嘛)。下面就跟我来设计窗体吧。(如图,)FormIconStop图标Caption停车检查BorderStyleLabelCaption警官我超速是有原因的,请听我说:BackColorHForeColorHLabelCaption你必须在字之内完成你理由的申诉否则将受到罚款~BackColorHForeColorHFFTextMultiLinkTrueText“”PictureAutosizeTrueBackColorHVisibleTruePictureAutosizeTrueBackColorHVisibleFalsePictureAutosizeTrueBackColorHVisibleFalseCommandVisibleFalse三个图片框Picture,的Picture属性分别为绿灯黄灯和红灯这些图标在VB目录下的GraphicsIconsTraffic下(VB)或是VB目录下的IconsTraffic下(VB、VB)你还可以为Label在Font属性里选一个合适的字体和字重。下面我们来看代码:首先初始化程序:PrivateSubFormLoad()'把Command放在水平的中央CommandTop=LabelTopCommandLeft=(FormWidthCommandWidth)'重叠三个图片框PictureLeft=PictureLeftPictureTop=PictureTopPictureLeft=PictureLeftPictureTop=PictureTopEndSub下面我来讲一讲程序是怎样运行的我们将用到Text的Change事件每当字符串改变一次就对它进行一次检查算出已经说的字数当字数超过时下面的红绿灯会变成黄色并且在这时随机抽取一个数它在一个范围内出现的可能是如果在这个范围内就可以免交罚金如果不在范围则继续当文字超过的时候红绿灯会变成红色再一次抽取随机数字步骤同上如果个字已满再进行一次检查如果你真的那么不幸就该罚款了。程序的步骤清楚了我们在来看看程序的要点。由于中文是双字节字符也就是说一个汉字占两个ASC码的位置而VB显然是为英语国家设计的用Len函数无法返回汉字字节也就是说一个汉字和和一个ASC字符在Len函数中得到的值是一样的这就需要特殊处理。用Asc()函数在括号内放入一个ASC字符或字符串它会把第一个ASC码转化为,的数值而把一个汉字放入它的值必然不在,这也就可以作为判定汉字的基础。我们可以把英文算作半个汉字。第六章第二部分第六章输入(二)下面我们来看看代码:在General里声明窗体级变量:DimLevelAsIntegerPrivateSubCommandClick()UnloadMeEndSubPrivateSubTextChange()DimStrLengthAsInteger’字符串长度DimRandomNumAsSingle’随机数DimStrAsStringDimaAsStringDimi,TempStrLength=’每次开始时把字符串长度还原为a=TextTextFori=ToLen(a)’Len(a)代表字符串的长度Temp=Asc(Mid$(a,i,))’挨个取字符IfTemp>OrTemp<Then’不是ASC码StrLength=StrLengthElseStrLength=StrLengthEndIfNextiStrLength=StrLengthSelectCaseStrLengthCaseToPictureVisible=TruePictureVisible=FalsePictureVisible=FalseLabelCaption="慢慢说。你还有"Str(StrLength)"个字可以说"Level=CaseToIfLevel=ThenRandomNum=Rnd*’得到随机数IfRandomNum<=AndRandomNum>ThenTextEnabled=FalseLabelCaption="很抱歉这是个误会„„"CommandVisible=TrueCommandCaption="您可以离开了"EndIfLevel=ElsePictureVisible=FalsePictureVisible=TruePictureVisible=FalseStr="怎么还没说完~"LabelCaption=Str"你还有"Str(StrLength)"个字可以说"EndIfCaseToIfLevel=ThenRandomNum=Rnd*IfRandomNum<=AndRandomNum>ThenTextEnabled=FalseLabelCaption="很抱歉这是个误会„„"CommandVisible=TrueCommandCaption="您可以离开了"EndIfLevel=ElsePictureVisible=FalsePictureVisible=FalsePictureVisible=TrueStr="我已经不耐烦了~"LabelCaption=Str"你还有"Str(StrLength)"个字可以说"EndIfCaseElseTextEnabled=FalseLabelCaption="你已经没有机会了~"CommandVisible=TrueCommandCaption="交钱吧肇事犯~"EndSelectEndSub中间有几个函数需要解释一下:Mid可以从字符串中取出一部分返回字符型格式:Mid(字符串,从第几个字符开始,取字符的长度)Asc可以把字符转换为ASCII码格式:Asc(字符串)Rnd取得大于但小于的数值可以没有参数。怎么样十分简单吧我们将在下一次继续讨论VB的输入机制~在继续上面的内容时我想再回顾和强调几个在字符串操作中经常函数:先是几个已经接触过的Mid()Asc()Len()它们的语法分别是:Mid(字符型起始字符长度)返回子字符串如果从字符串的第一个字符取起起始字符为依此类推。Asc(字符型)返回数值如果参数不是一个字符而是字符串(多个字符)将返回参数的第一个字符ASCII值。Len(字符型)返回字符串的长度。下面我再为你解释几个新的函数:Left(字符串长度)将返回字符型从字符串的第一个字符向左取字符串与之相对应的是Right()它将从字符串的最后一个字符向右取字符串。Chr(数值型)该数值范围从,返回字符型如Chr()可返回字符“A”这样可以输入一些用键盘无法输入的字符。Str(数值型)该函数把数值型转换为字符型也许你觉得数值“”和字符串“”没什么区别但在内存中一个ASCII字符是占一个字节也就是说字符串“”占个字节而当数值“”是整型时它占两个字符当它是长整型时占个字节。与之向对应的是Val(数值型)它把数值型转换为字符型。上面的函数都是以后要经常用到的请将它们熟悉。上次讲到文本框的用处还有意思吗,你是否能把上次的程序稍稍变动一下来计算出输入的单词数提示一下单词与单词之间是用空格分隔开的。输入不仅仅是向文本框输入字符凡是从外界向程序传递数据都可以叫做输入我们一一说明白。无线钮记得我们曾在第一章中完成过我们的第一个程序――“HelloWorld~”它就是一种输入的方法在设计VB程序时可以通过一组这样的无线钮它们之间互相排斥也就是说只能有一个按钮被选中。它因为很象无线电收音机上的按钮因而得名无线钮。如果要在一个窗体内放置多组无线钮必须用Frame控件把它们区分开来。下面我们在来完成一个例子顺便熟悉一下另外两个处理字符串的函数――LTrim()和Rtrim()它们分别用来删除字符串左边的空格和右边的空格让我们看看它们是如何工作的。程序窗体如图,由于窗体比较简单无需修改更多的属性一共有三个文本框(Text到)分别用来显示输入字符显示把空格换成星号的字符和经过处理的字符还有三个无线钮(Option到)要修改的只有Caption属性分别是“删除左边的空格”、“删除右边的空格”和“删除两边的空格”。因为空格在我们在文本框中无法看到空格所以我们通过一个称作AddStar的函数把原有字符串中的空格转换为星号使我们能够看到函数的效果。下面在程序中添加代码首先在General中声明窗体级变量:DimLTrimmedword$,RTrimmedword$'删除左边空格和右边空格后的字符串DimLRTrimmedword$'删除两边空格后的字符串然后我们通过一个叫做addstar的函数为字符串加上星号以前曾说过函数与过程的分别函数会返回一个函数值所以addstar也就相当于一个变量其实这很好理解就象中学代数中的函数函数就相当于变量Y而函数中的参数则相当于自变量X当然可能有很多自变量X、X„„请原谅我并不想在这里上数学课因为我厌恶那玩意儿特别是上了大学之后好在大二以后就再也不会有数学课了哈哈„„Functionaddstar(tempwordAsString)AsStringDimcharindexDimpasteword$'加星号后的字符串Forcharindex=ToLen(tempword)'如果字符为空格IfMid(tempword,charindex,)=""Thenpasteword=pasteword"*"Else:pasteword=pastewordMid(tempword,charindex,)EndIfNextaddstar=pasteword'返回函数值EndFunction下面的代码很简单并且我为它做了注释就不再一一解释了我只想简要的提几句Ltrim和Rtrim只有一个参数(字符型)另外下面用到了焦点事件我们曾在第三章中介绍过当Text得到焦点(GotFocus)时清空所有的文本框当它失去焦点(LostFocus)时对字符进行addstar并且在Text中显示。PrivateSubTextGotFocus()'但焦点于Text'清除所有文本框中的字符TextText=""TextText=""TextText=""EndSubPrivateSubTextLostFocus()DimOrigionwordAsStringOrigionword=TextTextTextText=addstar(Origionword)LTrimmedword=addstar(LTrim(Origionword))RTrimmedword=addstar(RTrim(Origionword))LRTrimmedword=LTrim(RTrim(Origionword))EndSubPrivateSubOptionClick()TextText=LTrimmedword'显示删除左空格后的字符串EndSubPrivateSubOptionClick()TextText=RTrimmedword'显示删除右空格后的字符串EndSubPrivateSubOptionClick()TextText=LRTrimmedword'显示删除两边空格后的字符串EndSub最后结果如图,。与无线钮相对的是检查框在同一范围内一组无线钮只能有一个被选中而检查框则可以有多个选择就象在添表时性别那项只能有一个选择而在描述你以前的职业时可以有学生、程序员、家庭教师或者什么总之有很多选择下面我们举一个简单的例子加以说明。假设编写了一个共享软件在让用户注册的时候你想知道你的用户使用的计算机情况你就需要一个调查表为了使这个调查表不止枯燥可以在这个程序中加入一些图形。新建一个项目文件窗体布局如图,。程序很简单一共有两个框架(Frame和Frame)它们的Caption分别为“选择你的计算机拥有的配置”和“这是你的计算机系统”在Frame有四个检查框(Check到Check)Caption分别为“网络系统”、“鼠标”、“密码保护”和“电子邮件”另把Check的Enabled属性改为False使其无效在Frame中放置四个图片框(Picture到Picture)与四个检查框向对应请把所有图片框的BorderStyle属性设为(无边框)它们的Picture属性请根据上图在存放图标的目录中找到相对的图标。下面是程序代码:PrivateSubCheckClick()IfCheckValueThenCheckEnabled=PictureVisible=Else:CheckEnabled=PictureVisible=CheckValue=PictureVisible=EndIfEndSubPrivateSubCheckClick()IfCheckValueThenPictureVisible=Else:PictureVisible=EndIfEndSubPrivateSubCheckClick()IfCheckValueThenPictureVisible=Else:PictureVisible=EndIfEndSubPrivateSubCheckClick()IfCheckValueThenPictureVisible=Else:PictureVisible=EndIfEndSub这个程序比我们见过的任何程序都简单就不再做说明。VB入门教程之六第六章输入(三)滚动条(ScrollBar)在视窗中也是一个不可缺少的部分由于面积所限我们不得把屏幕上的内容滚来滚去以显示大量的内容这就是我们经常要用到的滚动条。但滚动条除去滚动窗口还有一个很重要的作用――输入想想你经常用到的一些家用电器上调节声音或别的什么东西的滑块你把它滑向大的一方音量就会增大而你把它滑向小的一方音量就会减小或者一个控制左右两个音箱的均衡器当滑块在正中央的时候两个音箱的音量是相同的当你把滑块偏向一方时音箱的音量有了大小之分在Windows操作中我们也经常要用到类似的效果。在VB中提供了两个常规的滚动条控件――Vscroll和Hscroll分别代表垂直的和水平的滚动条它们只不过是方向不同而已而它们的属性以及会发生的事件都是相同的。滚动条有几个特殊的属性:Value属性当滑块挪动后停在某一位置时就改变了滚动条的Value属性。Max和Min属性用来设置滚动条的最大值和最小值譬如把Max设为把Min设为时滚动条的Value就在到之间移动当Max和Min倒置时滚动条的方向也会相反也就是说当Max<Min时原来Value增加的方向就会变成相反的方向。Max和Min也可设为负值。SmallChange和LargeChange属性当鼠标在滚动条两头的箭头上单击时就会把滚动条向相应的方向挪动一点这时用到的就是SmallChange属性当你把它设为时每点一下滚动条的Value就改变当鼠标在滚动条上点击时用到的就是LargeChange当设为时每点击一下滚动条Value就改变。下面我们看一个实例。大家都知道物体之所以会有颜色是因为物体表面的材料吸收了太阳光中的部分色光而还有部分色光没被吸收而被反射回来它就成了我们看到的颜色黑色就是物体吸收了所有的太阳光的所有色光没有反射颜色所以在我们看来是黑的而当物体反射了所有的色光我们看到的就是白色。在计算机中颜色的表示就是象我们刚才描述的样子它把颜色分为红(R)、绿(G)和蓝(B)。众所周知计算机的机器语言是使用二进制表示的为了方便查阅我们看到的往往是十六进制代码一个字节包括两位十六进制数字从,(十六进制表示,FF)而一个字节是由八位二进制数值表示(^的次方)计算机中用分别用一个字节也就是八位表示一种颜色和在一起也就是三个字节(位)表示所有的颜色这就是我们平时常说的位真彩它一共可以组成××(^)种颜色对于我们的肉眼是根本分辨不出来相邻两个不同的颜色的比如用FFFFFF表示白色就好象我们刚才说的物体反射了所有的色光相反的可以用表示黑色它吸收了所有的色光还可以用FF表示红色在HTML语言中就是这样表示颜色的。小知识:现在你可以根据你的显卡的显存来计算一下显卡在位真彩下可以以多大的分辨率显示计算是这样的用显存的字节数(位色),显示器宽的象素数×显示器高的象素数宽的象素数:高的象素数,:比如兆显存就应该是××,×。在下面的小程序中我们通过三个滚动条分别代表R、G、B滚动滚动条将在右边的图片框中显示相应的颜色并且在下面的文本框中显示颜色的十六进制数值。现在新建一个项目文件在Form中如图,布局控件各控件属性如下表:HsrollBarNameHscrollIndex、、(共同属性)MaxMinLargeChangeSmallChangeLabelNameLabelIndex、、IndexCaption“红:”IndexCaption“绿:”IndexCaption“蓝:”LabelNameLabelCaption“颜色值”TextBoxNameTextText“”PictureBoxNamePicuture为了把十进制数值换成十六进制数值要使用一个叫做Hex()的函数它把十进制数值转化为十六进制的字符但对于只有一位的十六进制字符这个函数并不在高位补零为了视觉上的正确我设计了一个小函数帮助它给一位的十六进制字符补零程序代码很简单见下:DimRedStr,GreenStr,BlueStrAsString’RGB的字符DimRedNum,GreenNum,BlueNumAsInteger’RGB的数值FunctionGetColorValue()AsString‘获得输入值RedNum=HScroll()ValueGreenNum=HScroll()ValueBlueNum=HScroll()ValueRedStr=Hex(RedNum)IfLen(RedStr)<ThenRedStr=""RedStr’补零GreenStr=Hex(GreenNum)IfLen(GreenStr)<ThenGreenStr=""GreenStrBlueStr=Hex(BlueNum)IfLen(BlueStr)<ThenBlueStr=""BlueStrGetColorValue=RedStrGreenStrBlueStr’合并EndFunctionPrivateSubFormLoad()‘初始化程序TextText=GetColorValuePictureBackColor=RGB(RedNum,GreenNum,BlueNum)'RGB函数返回颜色值EndSubPrivateSubHScrollChange(IndexAsInteger)‘当滚动条被改变时TextText=GetColorValuePictureBackColor=RGB(RedNum,GreenNum,BlueNum)EndSub运行如图,。列表框(ListBox)和复合列表框(ComboBox)也是我们经常见到的视窗元素我们从它所列示的条目中选出所需的两种列表框只是在外观上略有不同但从本质和操作方法来说它们是很相象的它们也有一些特殊的属性:List属性你可以利于该属性象列表框或复合列表框中添加条目但也可以在程序设计中通过AddItem方法添加。ListCount属性返回列表框或复合列表框中条目的数目。ListIndex属性表示列表框或复合列表框的第几项条目。(从到ListCount)Sorted属性可以通过该属性对列表框或复合列表框中的条目根据字母顺序排序。MultiSelect属性表示不能多选表示简单多选表示宽展多选仅限于列表框。Columns属性表示条目是以一列显示还是两列显示仅限于列表框。Style属性:表示列表框或复合列表框以何种风格显示二者参数不同。举两个简单的例子。例子一建立一个新项目文件在Form上添加一个List控件调整适当的尺寸无需改变任何属性。填写以下代码。PrivateSubFormLoad()WithListAddItem"Default"AddItem"Arrow"AddItem"Cross"AddItem"IBeam"AddItem"Icon"AddItem"Size"AddItem"SizeNESW"AddItem"SizeNS"AddItem"SizeNWSE"AddItem"SizeWE"AddItem"UpArrow"AddItem"Hourglass"AddItem"NoDrag"AddItem"ArrowAndHourglass"AddItem"ArrowAndQuestion"AddItem"SizeAll"EndWithEndSubPrivateSubListClick()MousePointer=ListListIndex’这里的MousePointer是窗体全局内的属性EndSub当你点在不同项上面鼠标指针也会随着改变如图,。AddItem方法语法如下:ListObject“字符串”,数值字符串后的数值可以指定条目加入在第几个条目的位置上如果没有的话添加项将逐次排下去。下面举一个复合列表框的例子例子通过选择复合列表框中的选项来改变文本框的字体。请新建一个项目文件在窗体中添加一个ComboBox(Combo)和一个TextBox(Text)添加如下代码。PrivateSubComboClick()TextFontName=ComboList(ComboListIndex)EndSubPrivateSubFormLoad()WithComboAddItem"宋体"AddItem"隶书"AddItem"黑体"AddItem"楷体"ListIndex='把第一个条目作为初始项EndWithTextFontSize=’放大字体TextFontName=ComboList()’初始字体为“宋体”EndSub如图,。(第六章完)第七章输出上一章里我们讨论的VB的输人机制这次我们来集中讨论VB中信息的输出。输入和输出是不可分割的人们输入的最终目的是希望计算机作出反应任何一个程序都不可能避开这个问题所以就算要完成一个最基本的程序也要有输出的部分复杂的程序更是如此。在输入的一章里我们学习的第一个输入方法是InputBox相应的在输出中我们第一个要接触的是MsgBox(MessageBox)和InputBox相似MsgBox也是简化了的窗体可以以函数的形式返回操作。它的基本语法是:MsgBox"显示内容",按钮值,"标题"通过这个函数可以产生一个标准的Windows消息框象我们平时经常接触的“YesNo”、“OKCancel”“RetryAbortIgnore”等等这些都是在按钮值中设定的按钮值如下:数值含义OKOK和CancelAbort、Retry和IgnoreYes、No和CancelYes和NoRetry和Cancel并且不同的消息可以搭配不同的图标比如帮助文件用问号一般提示用一个圈里一个I等等它们也是按钮值的一部分:数值含义表示危险表示问号表示警告表示信息但是如何既显示按钮也显示相应的图标呢请看一会儿下面的例子。前面说过MsgBox是函数那么它就会有返回值当你按下某个按钮就会返回一个数值以便对用户不同动作的捕捉返回值如下:数值含义OKCancelAbortRetryIgnoreYesNo说了这么多可能你已经不知所措了不过看过下面的例子后相信一切都会迎刃而解。首先建立一个新项目文件并添加以下对象(见图,)――一个Button(Command)两个ComboBox(Combo和Combo)不要对其属性做更多的修改只需把Command的Caption改为“ClickMe”。这个程序的目的是自由组合上面的按钮值以显示各种消息框并且返回按下的按钮Combo和Combo分别用来选择按钮值首先在FormLoad中初始化程序:PrivateSubFormLoad()ComboAddItem"OK"ComboAddItem"OKandCancel"ComboAddItem"Abort,RetryandIgnore"ComboAddItem"Yes,No,Cancel"ComboAddItem"Yes,No"ComboAddItem"Retry,Cancel"ComboListIndex=ComboAddItem"危险"ComboAddItem"询问"ComboAddItem"警告"ComboAddItem"信息"ComboListIndex=EndSubComboBox的用法已经在上一章中讨论过在此不再赘述ListIndex属性用来把第一个元素放在选择位置。但是如何显示需要的按钮和图标呢,很简单只需把它们相加比如说要显示OK、Cancel按钮和警告的图标只需把和相加得到即可于是我们在Command中填写这样一行:PrivateSubCommandClick()message=MsgBox("显示"ComboList(ComboListIndex)"和"ComboList(ComboListIndex),ComboListIndex(ComboListIndex)*,"消息演示")EndSub因为图标值是从开始的所以要把Combo的ListIndex加再乘以。小知识:按钮值并非简单的相加按钮值并非简单的相加我们知道在计算机里最终的语言是机器语言而机器语言是以和的二进制表示的在这里用到的实际上不是相加而是逻辑操作符“OR”你知道OR和AND是怎样工作的吗,正如你所知TrueAndFalse得到False而TrueOrFalse得到True这是怎么形成的呢,我们有时也用代表False用或,代表True(其实只要非零都可以代表True)而和在二进制中还是本身于是True、False的运算就变成的和的运算我们可以把And叫做补运算把Or叫做补运算当用And处理两个二进制数的时候它们逐位比较如果相同的位上都是或都是则没有变化而如果一位上是另一位上是最后结果上相应的位上就变成。比如(十进制中)And(十进制中)最后就得(十进制中)相同的Or亦是如此只不过在不同的地方补。在位数不同时前面补你可以在VB中试试看。但为什么要讲这些呢原因是我不想让大家真的以为这个例子中就是相加只不过碰巧它们的和处在不同的位置上并且这个小知识在今后的位图操作和API操作中很有用处。下面在来判断用户按下的按钮。PrivateSubCommandClick()message=MsgBox("显示"ComboList(ComboListIndex)"和"ComboList(ComboListIndex),ComboListIndex(ComboListIndex)*,"消息演示")SelectCasemessageCaseMsgBox"你按下了OK钮"CaseMsgBox"你按下了Cancel按钮"CaseMsgBox"你按下了Abort按钮"CaseMsgBox"你按下了Retry按钮"CaseMsgBox"你按下了Ignore按钮"CaseMsgBox"你按下了Yes按钮"CaseMsgBox"你按下了No按钮"EndSelectEndSub运行程序结果如图,,。附录VB教程第四章按钮(一)从本章开始我们将正式进入VB的编程世界但这还仅仅是个开端要编出功能强大的软件还要学很多东西那就要看以后的VB高级教程了我也得努力学啊~按钮是我们在Windows操作见到最多的控件它们有着各种各样的功能:“确认”、“取消”、“下一步”等等这些都是按钮的表现另外还有很多图形话的按钮其实它们并没什么不同所有的按钮都是通过单击(click)事件实现的只不过是在外表不同罢了。下面就让我们建立一个最简单的按钮双击工具箱的CommandButton将在窗体上建立一个形如图,的按钮它的缺省名(Name属性)为Command我们可以把它改名为cmdExit把Caption属性设为“退出”然后双击按钮填写代码:PrivateSubcmdExitClick()UnloadMeEndSub按下F或者工具条上的播放按钮运行程序。图,当你按下退出按钮的时候就会自动退出程序原因是当你单击按钮时激活了它的Click事件执行“UnloadMe”语句使得窗体被卸载。上面举了一个比较简单的例子下面的例子稍微复杂些:新建窗体控件布局如图,所示包括一个List控件一个Text控件和两个按钮(Command和Command)(比较简单的程序我们都采用缺省名)对它们属性做如下修改:ListCaption,“请输入你的名字”TextText,“”(空字符串)ButtonCaption,“复原”Enabled,FalseButtonCaption=“清除”把使用Button的Enabled属性设为False(假)是使程序在初始时无法单击Command。按F运行程序图,复原按钮成为灰色不可选。当然现在程序还什么也不能做下面我们在程序中添加代码:首先在General里声明全局变量:DimStoreStringAsString'用来储存字符串※注意:为什么用全局变量,VB里每一个小过程都相当于一个程序程序里的变量称为局部变量是只能在程序内部使用的而当程序调用结束后由于从内存中被清除所以变量储存的值也就消失了这里的全局变量是用来在过程中传递字符串。接着填写以下代码:PrivateSubCommandClick()TextText=StoreStringCommandEnabled=FalseEndSubPrivateSubCommandClick()StoreString=TextTextTextText=""'清除CommandEnabled=TrueEndSub,。按下“清除”文本框被清除按下“复原”文本运行程序如图有被恢复许多程序中的UndoRedo就是利用这个原理实现的现在知道为什么内存越多越好了吧。我们在把程序修改一下把Button删除Button的Enabled属性改为TrueCaption改为“清除”填写代码:PrivateSubCommandClick()IfCommandCaption="清除"ThenStoreString=TextTextTextText=""'清除CommandCaption="复原"ElseTextText=StoreStringCommandCaption="清除"EndIfEndSub同样可以上面的功能但是却少用了一个控件控件使用少的程序启动会快些。下面的例子要更加复杂些大家一定都用过Windows附件中的计算器它是一个标准的科学计算器利用VB我们也可以做到只是没有那么复杂四则运算而已。先建立一个新的项目文件里面包含一个Form的窗体。然后添加控件包括一个Text框(Text)和个按钮这个按钮使用的名称都是Command只是Index属性不同就好象一个数组创立一组按钮的方法是先在窗体上建立一个按钮(Command)然后在Command上击鼠标右键选择复制(Copy)然后在窗体上任意部位击右键选择粘贴(Paste)系统会提示是否创建控件组选择“是”重复上面步骤直至创立个按钮为止。各控件属性如下表:TextBackColor,HCFFFFText,“”CommandIndex――Index――Caption=IndexCaption=IndexCaption=IndexCaption=IndexCaption=IndexCaption=IndexCaption=IndexCaption=“清除”如果想改变一些其他的属性比如字体可以自己定义一下Font属性如果相对多个控件的共同属性进行改变可以在窗体上按下鼠标拖动把多个控件一起选定然后对它们的共同属性进行修改。别看这个东西小还费了近我两个小时呢不觉大叹手生里面也有些地方很绕弯子我尽量解释清楚。在编写程序之前我们先来回顾一下计算器的使用。按下数字键在液晶屏上会出现数字这是最基本的功能。第一次按下运算键再按下数字键将重新输入第二个数字再次按下运算键将算出前两个数的结果然后按下数字键将又重新输入新的数字。输入数字后按下“等于键”将仍输出原来的数字输入运算符和第二个数字后在按下“等于”将得到二者的结果。然后又重复第二、三步。按下“清除”数据被全部清除。了解了这些我们一步一步实现。先实现数据的输入请看代码。与未创立组的控件相比它的事件里多了Index参数组里所有的对象都使用同一个事件。先在General里声明窗体级全局变量:DimNum,NumAsSingleDimStrNum,StrNumAsStringDimFirstNumAsBoolean'判断是否是数字开头因为Text里是存放字符串的所以要把输入的数据进行运算必须把字符型变量转变为实型变量分别用Num、Num和StrNum、StrNum进行存放。在FormLoad事件里给变量初赋值:Num=Num=StrNum=""StrNum=""FirstNum=True因为个按钮使用的是同一事件所以我们用一个SelectCase语句区分各个按钮双击任意按钮输入代码:PrivateSubCommandClick(IndexAsInteger)SelectCaseIndexCaseToIfFirstNumThenStrNum=Str(Index)’实型转字符型FirstNum=False’初赋值为假Else’非初赋值StrNum=StrNumStr(Index)EndIfTextText=StrNum’显示<还有其他语句等待插入>EndSelectEndSub运行程序的话已经可以输入数据下面我们来处理小数点。在General里声明新的变量:DimPointFlagAsBoolean'判断是否已有小数点我们知道小数点只能输入一次一个数据中不能有多个小数点存在所以需要一个布尔变量做判断。在FormLoad里进行初赋值:PointFlag=False在Command的单击事件里接着上面输入新的代码:CaseIfNotPointFlagThen’如果没有小数点IfFirstNumThen’如果是第一个字符StrNum=""FirstNum=FalseElseStrNum=StrNum""EndIfElse’已有小数点ExitSub’则退出单击事件EndIfPointFlag=TrueTextText=StrNu

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/80

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利