下载

1下载券

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

上传资料

关闭

关闭

关闭

封号提示

内容

首页 VB基础入门教程

VB基础入门教程.doc

VB基础入门教程

andyloudehua
2011-12-02 0人阅读 举报 0 0 暂无简介

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

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界面相同的应用程序而且程序员不必关心最终用户的硬件配置情况。在这一开发环境中程序员唯一困难的是MicrosoftSDK提供了六百多个函数和与其一致的事件驱动(eventdriven)编程技术。两种新方法的交叉使众多的程序员重新陷入困境程序员不仅要掌握程序驱动编程技术和六百多个函数的功能而且还得用C语言描述这些问题。因此一般情况下程序员首先要掌握C程序设计技术而后再开始学习SDK。这样的条件下就要求在Microsoft多任务环境下出现一种操作方便使用简单的新工具----VisualBasic由此诞生。何为可视   英文Visual的意思是“视觉的”“可视的Baisc”这个名字可能抽象了点但实际上它却是最直观的编程方法之所以叫做“可视”你只要看到VB的界面就会明白实际上你无需编程就可以完成许多步骤。在VB中引入了控件的概念在Windows中控件的身影无处不在各种各样的按钮、文本框、无线钮都是控件的种类VB把这些控件模式化并且每个控件都有若干属性用来控制控件的外观工作方法。这样你就可以象在画板上一样随意点几下鼠标一个按钮就完成了这些在以前的编程语言下是要经过相当复杂的工作的。 第二章:事件、属性及数据类型以后两章可能会比较枯燥但不可否认也很重要所以为了学好VB我们一定要打好基础才行。  一、事件通过上一章的例子你可能对“面向对象的编程”已经有了一定了解它是由事件驱动的对于不同的对象所能感应到的事件也会不同譬如说当你把鼠标移进某一区域时就会触发MouseMove事件这很直观也容易理解但也有些事件比较抽象下面我来对一般的事件进行一下解释。窗体和图象框类事件·Paint事件:当某一对象在屏幕中被移动改变尺寸或清除后程序会自动调用Paint事件。注意:当对象的AutoDraw属性为True(-)时程序不会调用Paint事件。 ·Resize事件:当对象的大小改变时触发Resize事件。 ·Load事件:仅适用于窗体对象当窗体被装载时运行。 ·Unload事件:仅适用于窗体对象当窗体被卸载时运行。 当前光标(Focus)事件·GotFocus事件:当光标聚焦于该对象时发生事件。 ·LostFocus事件:当光标离开该对象时发生事件。注意:Focus英文为“焦点”、“聚焦”之意最直观的例子是比如有两个窗体互相有一部分遮盖当你点下面的窗体时它就会全部显示出来这时它处在被激活的状态并且标题条变成蓝色这就是GotFocus事件而相反另外一个窗体被遮盖并且标题条变灰称为LostFocus事件。上面所说的“光标”并非指鼠标指针。 鼠标操作事件·Click事件:鼠标单击对象。 ·DbClick事件:鼠标双击事件。 ·MouseDown、MouseUp属性:按下放开鼠标键事件。 ·MouseMove事件:鼠标移动事件。 ·DragDrop事件:拖放事件相当于MouseDown、MouseMove和MouseUp的组合。 ·DragOver事件:鼠标在拖放过程中就会产生DragOver事件。 键盘操作属性·KeyDown、KeyUp事件:按键的按下放开事件。 ·KeyPress事件:按键事件。 改变控制项事件·Change事件:当对象的内容发生改变时触发Change事件。最典型的例子是文本框(TextBox)。 ·DropDown事件:下弹事件仅用于组合框(ComboBox)对象。 ·PathChange事件:路径改变事件仅用于文件列表框(FileBox)对象。 其他事件·Timer事件:仅用于计时器每隔一段时间被触发一次。二、属性   每个对象都有它的属性并且“Name”属性是共有的有了“Name”属性才可以在程序中进行调用。对于属性可以在窗体的布局操作中完成也可以在程序运行中改变这取决你的需要但有些属性是只读的它只能在控件布局时改变。我将在以后的实例中具体介绍各个属性的作用。  三、数据类型学过编程的人都知道大多数的计算机语言都规定了各自的数据类型VB也不例外。其实在一个最简单的程序中数据类型是可以不作规定的也就是说变量可以使用各种类型但是在一个复杂的程序里这样做就很危险因为很可能给同一个变量赋予了不同的类型而导致程序出错。所以为了程序的严谨和便于查看正确的定义数据类型是必要的。定义数据的另一个原因是不同的数据占用不同的内存数量譬如整型(Interger)数据占字节而长整型数据占个字节定义合适的数据类型不管你相信不相信它可以节省内存!VB常用的数据类型有:整型(Integer表示至之间的整数)、长整型(Long表示,,,至,,,之间的整数)、实型(Single表示E至E之间的实数)、双精度实型(Double表示E至E之间的实数)字符(String每个字符占一字节可以储存~,个字符)布尔(Boolean只有两个值True或False)。数据类型的定义方法:·定义变量最简单的方法是用“Dim”关键字它的语法:Dim【变量名】As【数据类型】如:DimIndexAsInteger也可以在一行中定义多个变量如:DimIndexAsInteger,DimNumberAsLong把多个变量定义成同一类型可以写成:DimIndex,NumberAsInteger更可以在定义时进行初赋值:DimIndex=有时为了简便也以符号进行简单的定义作用是和上面一样的。整型可以用“”代替长整型可以用“”代替实型可以用“!”双精度实型可以用“#”定义如刚才的第一个例子可以写成:DimIndex等价于DimIndexAsInteger·对于常量的定义用Const定义如:ConstCOLOR=。为了在程序中便于查阅我们对变量和常量的写法进行规定变量一般用小写方式常量则全部大写。注意:使用常量的好处对于程序中经常出现的数值应设常量等于它这样一是书写方便其二如果要改变该数值只需改变定义常量的语句值而不需改变每个语句提高了效率。·数组的定义类似于变量定义所不同的是数组需要指定数组中的元素个数例如:DimIntegerArray()AsInteger这个数组中包含个元素脚标从到。也可以指定脚标的起始值例如:DimIntegerArray(to)AsInteger这个数组含有九个元素脚标从到。还可以定义多维数组:DimThreeD(,to,to)AsInteger上例定义了一个三维数组(××)。·记录的定义记录定义是把控制权交给用户的方法它让用户可以定义自己的数据类型它使用关键字“Type”方法是:Type【数据类型标识符】<域名>As<数据类型><域名>As<数据类型><域名>As<数据类型>…………………………EndType例如定义一个地址数据:TypeAddressStreetAsStringZipCodeAsStringPhoneAsStringEndType这个地址数据里包括三个属性街区、邮政编码和电话可以把某数据定义成此类型:DimMyHomeAsAddress要调用或改变“MyHome”的值时类似于对对象的属性的操作:变量名域名=“……”为了简化书写重复的部分,可以用关键字“With”:WithMyHomeStreet=阜成路”ZipCode=Phone=EndWith第三章:VB语言本章提要:·VB语法与Basic的异同 ·注释语句 ·长语句的分行 ·条件语句 ·循环语句 ·运算操作 ·数据定义与赋值 ·函数和过程一、VB与Basic·VB之所以叫做“VisualBasic”就是因为它使用了Basic语言作为代码所以它们之间有着千丝万缕的关系如果学过Basic的话看到VB的程序结构会感到很亲切。但VB作为新生物也超越了Basic的限制有了许多自己的特点: ·VB建立了一种新的变量类型――货币型变量通过使用仅带有二位小数的货币变量就能避免因使用实型变量而带来的数值积累误差问题。 ·VB在调用函数(Function)时必须在函数名后跟一对括号。 ·VB对白兰地使用范围重新做了规范在Basic里把隐含变量都当作全局变量而在VB里对隐含变量都当作局部变量。 ·VB里的说明语句(Declare)仅支持动态链结库(DLL)的子程序和无变量函数。 ·使用数组必须事先用Dim或Redim进行定义。二、注释语句在使用注释语句之前必须先了解注释的作用注释不仅仅是对程序的解释有时它对于程序的调试也非常有用譬如说可以利用注释屏蔽一条语句以观察变化发现问题和错误。以后注释语句将是我们在编程里最经常用到的语句之一。在VB里注释语句有两种一种是用“Rem”关键字这跟DOS里的批处理文件的用法一样还有一种是利用单引号“’”例如:‘DimaAsString与RemDimaAsString的作用是一致的。三、长语句的分行在比较早的版本中因为没有象C等语言用“”隔开语句与语句VB的语句是必须写在一行里的不过后来版本的VB里如许用分行符“”把一个长语句分成若干行来存放。四、条件语句如果你学过任何一种编程的话都会知道在程序里控制其流程的有两种语句条件与循环VB自然也不例外其实不管哪种语言条件和循环的样子都差不多只不过各有各的规矩罢了。在条件语句里我们先来学习“If……Then……”语句。它的一般语法是:If<条件>Then<语句><语句>………EndIf与C语言不同VB的条件语句更符合英语的语法如果Then后面所跟的语句只有一条可以写成:If<条件>Then<语句>而不用EndIf。有时我们还会用到If<条件>Then <语句>Else <语句>EndIf更可以在Else里在嵌套If语句如:If<条件>Then <语句>ElseIf <语句>Else <语句>EndIf所有这些可以用一个表格表示:条件TrueFalse语句条件TrueFalse语句条件TrueFalse………………………………条件NTrueFalse语句N语句N+  用了过多的Else后你会感到很不方便而且程序结构也不清晰所以大多数的语言还有Select语句帮助解决这个问题。VB里的Select语句的格式是这样的:SelectCase<变量名>Case<情况> ……Case<情况> ……Case<情况> …… …… ……CaseElse ……EndSelect例如:SelectCaseaCase Print“a=Case Print“a=CaseElse Print“adoesnotequaltoor”EndSelect五、循环语句循环结构是计算机语言里一种重要的结构它的应用广泛最简单的例子是累加器的作用还可以用于穷举法更直观的例子是把某件事重复指定的次数这样就不用把要重复的语句输入多次而通过循环结构完成非常方便。C语言里有一个“for”循环语句VB里也有“For”关键字作用也差不多只是VB的“For”语句更容易理解。它的格式是:For<循环变量>=<初赋值>To<终值>Step<步长>…………Next<循环变量>在默认情况下Step被设为“”可以省略Step也可以设为负值例如:Dima=ForI=Toa=NextI这是一个最简单的累加器的例子把到累加在一起然后赋值给“a”这样的效果和上面是一样的只不过是倒着加罢了请看:Dima=ForI=ToStep–a=NextIWhile语句也是一个很常用的循环语句它的形式很多。·DoWhile……Loop语句 ·While……Wend语句 ·Do……LoopWhileWhile后面都跟逻辑条件判断“DoWhile……Loop语句”和“While……Wend语句”作用相似都是先判断While后面的条件是否为“真”如果为“真”则执行里面的语句如果为“假”则退出循环循环直至条件为“假”终止。“Do……LoopWhile”与前两者的区别在于它不管条件的真假都会先执行“Do”后面的语句也就是说它至少执行语句一次。与While用法相似的还有Until语句它是直至条件为真则终止循环句式把While上述三个语句的While换成Until即可但是因为容易记混所以我建议只用While即可。Until<条件>可以相当于WhileNot<条件>。For循环和Whlie循环应当根据适当的环境使用它们有时也可替换。六、运算操作数学运算·+:加法运算也适合于字符串的之间的合并运算。 ·-:加法运算。 ·*:乘法运算。 ·:除法运算。 ·:整除运算。 ·Mod:求余运算。例如:aModb表示a被b整除以后的余数。 ·^:幂运算。A^B表示以A为底的B次方。关系运算关系运算也称比较运算它表示不等式的真或假VB共提供六种运算符分别是=逻辑运算逻辑运算是对真或假的运算我将列表说明: ABNotA非And与Or或Xor异或Eqv相等Imp蕴含TTFTTFTTTFFFTTFFFTTFTTFTFFTFFFTT T――TrueF――False七、数据与定义本标题的内容已经在上一章向大家详述过在这里就不再重复。八、函数与过程函数与过程有许多相似的地方它们之间最大也是最本质的区别就在于函数有一个返回值而过程只是执行一系列动作所以可以简单的把函数理解成为一个变量而VB中的每个事件都是一个过程比如CommandClick()就是一个过程。因为在程序设计中经常会有重复的地方所以把它做成一个函数或一个过程在使用时进行调用可以节省大量的输入代码的时间而且使用函数和过程也便于程序的结构化和修改查看。函数和过程都可以有参数也可以没有参数。关于函数和过程将在以后的章中配合实例讲解请您继续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=FalseEndSub PrivateSubCommandClick()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=StrNum第四章 按钮(二)  下面会复杂一些我们先跳过等号而来处理四则运算:先在General里声明新变量:DimRunsignAsInteger'储存运算符号DimSignFlagAsBoolean'判断是否已有运算符号然后在FormLoad中进行初赋值:Runsign=SignFlag=False在接下的CommandClick中继续输入代码:CaseToFirstNum=True’使下一次可以输入新数据PointFlag=False'还原标记值IfSignFlagThen’前面已有运算符未运算CallRunElseSignFlag=TrueStrNum=StrNum’把字符串复制给字符串StrNum=""’字符串清空EndIfRunsign=Index‘储存键入的运算符  里面运算的部分我用了一个过程是因为在按下等号时还会调用到运算过程这样可以减少代码的输入也使程序便于浏览。建立过程(Procedure)可以在General部分直接输入也可以通过菜单里的“AddProcedure”添加。Run的代码如下:SubRun()Num=Val(StrNum)Num=Val(StrNum)SelectCaseRunsignCase’加equal=NumNumCase’减equal=NumNumCase’乘equal=Num*NumCase’除equal=NumNumEndSelectStrNum=Str(equal)StrNum=StrNumTextText=StrNumEndSub下面是其余的代码:(在CommandClick事件里接着写)CaseIfNotSignFlagThenTextText=StrNumequal=Val(StrNum)FirstNum=TruePointFlag=FalseElseCallRunSignFlag=FalseEndIfCaseElse’清除按钮CallClearData里面又用到了一个ClearData过程实际上就是FormLoad里的变量初赋值代码如下:SubClearData()Num=Num=StrNum=""StrNum=""FirstNum=TruePointFlag=FalseRunsign=SignFlag=FalseTextText=""EndSub这样完整的程序就完成了本章介绍了VB的第一个控件――按钮并且举例希望你继续看下一章――菜单。下面给出完整的程序代码:DimNum,NumAsSingleDimStrNum,StrNumAsStringDimFirstNumAsBoolean'判断是否是数字开头DimPointFlagAsBoolean'判断是否已有小数点DimRunsignAsInteger'储存运算符号DimSignFlagAsBoolean'判断是否已有运算符号 SubClearData()Num=Num=StrNum=""StrNum=""FirstNum=TruePointFlag=FalseRunsign=SignFlag=FalseTextText=""EndSub SubRun()Num=Val(StrNum)Num=Val(StrNum)SelectCaseRunsignCaseequal=NumNumCaseequal=NumNumCaseequal=Num*NumCaseequal=NumNumEndSelectStrNum=Str(equal)StrNum=StrNumTextText=StrNumEndSub PrivateSubaboutClick()MsgBox"Createby周晓阳。",vbDefaultButton,"VB教程第四章范例"EndSub PrivateSubCommandClick(IndexAsInteger)SelectCaseIndexCaseToIfFirstNumThenStrNum=Str(Index)FirstNum=FalseElseStrNum=StrNumStr(Index)EndIfTextText=StrNumCaseIfNotPointFlagThenIfFirstNumThenStrNum=""FirstNum=FalseElseStrNum=StrNum""EndIfElseExitSubEndIfPointFlag=TrueTextText=StrNumCaseToFirstNum=TruePointFlag=False'还原标记值IfSignFlagThenCallRunElseSignFlag=TrueStrNum=StrNumStrNum=""EndIfRunsign=IndexCaseIfNotSignFlagThenTextText=StrNumequal=Val(StrNum)FirstNum=TruePointFlag=FalseElseCallRunSignFlag=FalseEndIf CaseElseCallClearData EndSelectEndSub PrivateSubFormLoad()CallClearDataEndSub补充说明按钮还有两个重要的属性Default(默认属性)和Cancel(取消属性)两个属性都以布尔赋值把Default设为True则在按下回车键时不论焦点处于何处都会触发该按钮的Click事件而当Cancel属性被设为True在按下ESC键时该按钮的Click属性发生。下面举个例子:建立一个新窗体和两个按钮Name属性分别为cmdOK和cmdCancel把前者的Default设为True后者的Cancel设为TrueCaption属性分别为OK和Cancel。如图-。填写代码后运行:PrivateSubcmdCancelClick()MsgBox"Cancel按钮被按下",vbDefaultButton,"提示"EndSub PrivateSubcmdOKClick()MsgBox"OK按钮被按下",vbDefaultButton,"提示"EndSub结果如图-、-:INCLUDEPICTURE"LocalSettingsTempVB入门教程vbfilesgif"*MERGEFORMAT快捷键大家一定都知道在VB如何实现呢。其实很简单在刚才的例子里在建立一个按钮Command把它的Caption属性设为ClickME如图-在M的下面有一条下划线运行程序当你按下AltM的时候就触发了CommandClick事件:PrivateSubCommandClick()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运行程序你会看到这样的结果。图--。是不是有种受骗的感觉啊哟哟

用户评价(0)

关闭

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

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

提示

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

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/71

VB基础入门教程

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利