下载

0下载券

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

上传资料

关闭

关闭

关闭

封号提示

内容

首页 新一代BASIC语言--VB入门

新一代BASIC语言--VB入门.doc

新一代BASIC语言--VB入门

刘至海
2017-10-07 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《新一代BASIC语言--VB入门doc》,可适用于综合领域

新一代BASIC语言VB入门杜国梁VisualBasic编程系统引用部分面向对象的机制提供了一种所见即所得的可视界面设计方法同时保留了Basic语言的简单易用性设计出的应用程序完全符合Windows规范。VisualBasic提供了一个易学易用的应用程序集成开发环境在这个环境中用户可设计界面编写代码调试程序最后可把应用程序编译成可执行文件脱离VisualBasic环境而能在Windows中独立运行同时还提供将应用程序制成可分发的形式(M或M的安装软盘)这一功能在一般的开发环境中是不多见的。MicrosoftVisualBasic目前有forWindows和forDOS两种版本但forDOS的版本不多见最为流行的是VisualBasicforWindows的专业版是该软件的最新版本。一、VisualBasicforWindows所要求的软硬件条件硬件要求:SX以上处理器至少兆内存兆自由硬盘空间鼠标虽可任选但没有鼠标会大大降低效率并显得十分笨拙。软件要求:MicrosoftWindows运行在增强模式下若要编写中文应用程序应使用中文windows或西文windows加中文之星或其它中文平台。二、VisualBasicVB被启动后可以看到如下(图)屏幕图景:屏幕中包括以下几个独立的窗口:主窗口中的屏幕图的最上部由标题栏、菜单条和工具条组成。标题栏中的标题为MicrosoftVisualBasic,design,说明此时集成环境处于设计(design)模式。菜单条中包括个下拉式菜单。菜单条下面是工具条其中有很多工具按钮。具体的菜单命令和工具条按钮用到时再详叙。标题栏的左端带有一个小矩形的方框是Windows系统中的每个窗口都有的控制菜单框可打开系统控制菜单标题栏的右边是最大化按钮和最小化按钮。在工具条的右边有两个数字的乘积靠左边的是位置指示它指出激活对象(具有输入焦点)的位置单位是“特维”(Twip英寸)右边是大小指示即长乘宽。主窗口虽然在启动时显示在屏幕的顶端但它的位置是可以改变的可放在屏幕的任何地方。工具箱窗口(Toolbox)如图所示。这些工具是应用程序的集成开发环境中用于设计应用程序的人机界面的。其中大部分是VB中的内建工具。还有的是外加的工具(扩展工具)。每种工具的使用方法留待下面讨论控件及其属性时再做详细介绍。具箱窗口可根据需要显示或隐藏。请注意这里的工具和工具条中的工具按钮的区别工具按钮执行一种命令而工具箱是设计应用程序界面的工具。窗体窗口(Form)中间部分所示。在VB中窗体(有的文章中译为“表图”似有不妥)是应用程序表演的“舞台”在其上可放置“道具”在VB中被称为“控制部件”(Control)简称为“控件”Windows中的窗口上的标准部件几乎都有对应的控件这些控件是用工具箱中的对应工具“画”出来的。窗体和可放置其上的控件在VB中都被视为“对象”(Object)。项目窗口(Project)VB应用程序所需文件的清单(图)。其中具有后缀VBX的文件是VB的扩展工具所需的文件在项目窗口中每增加一个VBX文件工具箱中会增加一个或多个工具(一个扩展文件可能包括多个工具)。当VB启动时虽然还没有任何应用程序调入但VB已经打开了一个缺省的新项目名为Project这就是项目窗口的缺省标题。项目窗口中列出了缺省项目的所需文件。项目窗口是用户维护应用程序的文件的区域用户根据程序需要增加或删除项目中的文件其结果都要反映到项目窗口中来。每个正在设计的VB应用程序都有一个后缀为MAK的文件这就是项目源文件其内容就是项目窗口中显示的文件。而MAK文件的文件名就是项目窗口上的标题。VB中同时只能打开一个项目打开新项目就要关闭原来的项目。利用“File”(文件)菜单或工具条上的按钮可向项目增加新文件或删除已有的文件。ViewForm”(查看窗口)另一个是“ViewCode”(查看代码)。当窗体不可见时可选择窗体文件名再按“ViewForm”按钮从而显示对应窗体按“ViewCode”可打开窗体的代码窗口在其中可查看和编辑程序代码。属性窗口(Properties)中右下部是属性窗口其中包括所选窗体或控件的所有在设计时可更改属性(Properties)的列表。系统赋予的只读属性和运行时才有的属性都未在属性窗口中列出。所谓属性是标志对象的外观和功能改变对象的属性就是改变对象的外观或改变对象的功能。窗口另外还有代码窗口(前面已提到)、调试窗口(运行正在设计的程序时才出现)、调色板窗口(用于改变前景色和背景色)和菜单设计窗口(用于设计窗体上的菜单在程序界面设计部分中详述)。三、应用程序的界面设计VB应用程序的第一步。这也是用VB设计应用程序和用其它非可视程序语言设计应用程序不同的地方。为了以下介绍的方便有必要介绍一下VB中特有的术语和语句的书写约定然后介绍几种常用的工具箱中的工具在界面设计中的应用。VB中的对象简介VB中有以下几种对象:()所谓全局对象是应用程序在程序的任何层次都可访问的对象共有以下五种:App正设计的应用程序它的属性决定或指定应用程序的标题、路径、可执行文件名以及帮助文件名等。Cipboard它就是Windows中的剪切板在VB应用程序中可用关键字Clipboard来访问它从而操作其上的数据或图形。即将数据放到剪切板上或从剪切板上取回数据。Screen计算机屏幕它是应用程序窗口的“容器”通过它可设置应用程序的窗口在屏幕上的位置以及鼠标指针的形状Debug调试窗口当应用程序在VB集成环境中运行时才显示出来供调试程序用Printer打印机联机的打印机也是一个对象应用程序可操作它在纸上输出结果()程序界面对象Form窗体它可作为程序界面或对话框。是应用程序界面中的部件或对话框中的部件的“容器”Control控制部件(简称为控件)这是和用户交互的标准部件命令按钮、文本框、列表框、滚动条、菜单等都属此类。除菜单控件外所有控件都可用工具箱中的工具“画”出来。菜单控件是用菜单设计窗口作为工具设计出来的。界面设计就是在窗体上放置控件并指定其属性。()数据访问对象VB的专业版可以操作数据库数据访问对象是为访问数据库而设的超出本文讨论的范围在本文中不作介绍。术语与约定()属性(Properties)设置还有的属性是系统赋予对象的只能在运行时访问这种属性但不可更改。还有的属性仅在运行时才可访问和更改。后两种属性都不会出现在属性窗口的列表中。在程序代码中可利用如下的语句访问对象的属性:,对象名,属性其中对象名和属性间用“”连接若省略对象名则指当前具有焦点的对象。上述组合可看作为一个变量。既可对其赋值(对非只读属性)也可将其值赋于别的变量。()事件(Event)VB中称为事件但在Windows中称为“消息”。事件可分为鼠标事件、键盘事件和其它事件。在VB中将消息化为事件就更易于理解和使用。每个对象可引发的事件在VB中都已经准备好对应的事件过程程序员只需编写响应事件的代码。()过程(Procedure)与方法(Method)VB中每个对象可引发的事件过程的模板都已经准备好在设计时双击控件可打开与此控件有关的代码窗口在过程列表框中列出了这个控件可能引发的事件对应过程。选择某一过程可打开该过程的代码模板。另一种过程就是函数和对象联系的函数用于改变或设置对象的某种属性。比如LoadPicture函数可设置窗体的Picture属性。须指明对象方法的调用语法为:,对象名,方法,参数,对象名和方法之间用“”连接。例如调用Debug对象的Print方法可用语句DebugPrint。若省略对象名则对象指当前的活动对象。窗体与控件在界面设计中的应用()窗体景组成了程序运行的界面。性。以下只介绍常用属性。Name:应用程序中第一个窗体的缺省名为Form以下类推。这是对应窗体在程序中的标识符。可设置为与功能有关的名字不能使用汉字。VB中的所有控件都有此属性使用原则相同对于其它控件不再一一介绍。Caption:显示在窗体标题栏中的字符。缺省名与Name属性同。也可以没有标题。可使用汉字。这也是一个共同的属性。AutoRedraw:逻辑值控制窗体是否自动刷新。当窗口被覆盖或缩为图标后重新显示时若此属性为False(假)时不能重画窗口内原来的图象这时要调用一个事件过程来执行重画窗口的任务。BackColor、ForeColor:前者设置窗体的背景色后者设置窗体上显示的字符或图形的前景色。从属性窗口中查看这一属性的缺省设置会发现其值如H这是一个十六进制的常数代表了一种颜色。在该属性设置框右边有一个省略号(„)单击它会弹出一个调色板来可从调色板中选择所需颜色。和颜色有关的属性都有调色板可用于设置颜色值。BorderStyle:设置窗体的边界风格。可取值如下表:设置作用None窗口无外框。FixedSingle在设计阶段指定大小运行时不可变具有单线外框。Sizable具有双线外框运行时可改变大小。FixedDouble在设计阶段指定大小运行时不可变具有双线外框。ControlBox:逻辑值为True(真在VB中以代表真其余值为假)时在窗体的左上角显示控制菜单框。从而可打开窗口的控制菜单当设计一个软件封面时可能不需要这一功能此时可设为False。Enabled:逻辑值每个VB的对象都有此属性。可使对象的功能有效或失效。对窗体来说一般应设为True但若要禁止键盘和鼠标动作对窗体的影响可设为False。FontName:设置窗体上显示的正文的字体。可以属性设置框中拉出可用字体的列表从而可从中选择。运行时如改变这一设置只影响设置以后显示的字体。FontSize:设置字号。设置方法同上。字号的单位为“点”(英寸)。FontBold、Fontltalic、FontStrikethru、FontUnderline:均为逻辑值设置正文的风格。Top、Left、Height、Width:决定窗体的位置和大小。Top和Left是窗体左上角的坐标(以屏幕左上角为原点)Height和Width是窗体的高和宽单位均为“特维”(Twip)它的大小为英寸。一般这几个属性可通过鼠标的拖放加以设置(就象操纵标准窗口一样)Picture:指定在窗体上显示的点位图。在属性窗口的设置框右边有省略号单击它拉出一个对话框从中可指定点位图的文件名。在运行时要用LoadPicture函数来设置它。Click(单击鼠标左键)、DblClick(双击鼠标左键)和Load(向内存中装载窗体)事件。Click:当用户单击窗体上的不包括任何对象的区域时引发这一事件VB调用和此事件相联系的FormClick事件过程(如果其中有代码的话)。DblClick:在窗体上的同一地点(不包括任何其它对象)双击鼠标左键引发这一事件从而执行FormDblClick过程。Load:一旦向内存中装载窗体如启动应用程序时自动产生此事件相应的FormLoad过程被执行。此事件过程很适合在启动应用程序时对属性和变量进行初始化。Cls:方法。清除窗体上的在运行时写入的文本和图形。在设计阶段放入的图形和控件不受此方法的影响。用法如下:,窗体名,Cls此方法不带任何参数。LoadPicture:函数。用于设置窗体的PictureLoadPicture(,图形文件名,)图形文件可为点位图(后缀为BMP)、图元文件(后缀为WMF)或图标(后缀为ICO)如不指定文件名则指定一个空图形。Print:方法。向窗体书写文本。其用法和Basic中的Print语句相似:,对象名,Print,,表达式,,l,,,„每个表达式后有一个分号或逗号。如使用分号则下一个表达式紧随在上一个表达式的最后一个字符之后如果用逗号窗体上的输出位置前进到下一个制表位(每个制表位定义为个字符)。如果最后的表达式后有分号或逗号则在窗体上不换行否则输出位置将设置到下一行。此方法除用于窗体之外还可用于打印机对象(Printer)和调试窗口对象(Debug)中再加以介绍。()窗体上的控件(Control)鼠标的拖拉“画”出来的。当一个控件被选择时属性窗口中显示该控件的属性列表以备修改(改变设置)。下面介绍常用的几种控件。所用工具参见图。(PictureBox)和图像控件(lmage)()属性Enabled、Height、Left、Name、Picture、Top、Width。这些属性与窗体中的对应属性意义一致但Height、Width、Left、Top这四个属性值指的是窗体中的坐标而不是屏幕的绝对坐标这一点对窗体中的所有对象都如此。图片框很象主窗体中的小窗口它具有图像控件没有的属性:AutoRedraw、FontBold、Fontltalic、FontName、FontSize、FontUnderline。这些属性与窗体中的对应属性的意义相同。()事件()过程和方法LoadPicture函数设置图片框或图象控件的Picture属性。图片框还支持Cls和Print方法以及图形方法。(Label)签。这是设计应用程序界面的重要元件。()属性FontBold、FontItalic、FontName、FontSize、FontUnderline以及与位置和大小有关的Height、Width、Left、Top等其它重要属性如下:Name:在代码中的该控件的标识符。Caption:标签中显示的文本。这是标签控件最重要的属性。在设计阶段可用属性窗口设置在运行阶段可用以下标识加以访问(改变设置或读出设置):,窗体名(Name属性),标签名(Name属性)CaptionAlignment:决定如何放置标签中的文本(Caption属性)。设置作用(缺省设置)左对齐右对齐居中AutoSize:,True|False,若为True自动改变标签的大小以适应正文若为False时标签大小不变若正文太长将被截短以适应标签的大小。BorderStyle:为时无边框为时为单线边框。()事件、过程与方法Click、DblClick事件但事件对标签并不重要。(TextBox)计中文本框常用来输入用户信息与应用程序进行交互。()属性BorderStyle、Enabled、FontBold、Fontltalic、FontName、FontSize、FontUnderline、Height、Left、Name、Top、Width等这些属性与前面介绍过的意义相同另外还有以下属性:MaxLength:缺省值为它表示文本框可以接受任意多的输入字符。MultiLine:若为True则可输入多行文本按回车键换行若为False只能输入一行正文。PasswordChar:缺省的属性为一个空字符意为用户可以看到输入的字符。若为一个字符(比如*)则表示该文本框是一个口令域当给应用程序加入口令时应使此属性为一个非空字符。Text:程序读入该属性以便查看用户输入的内容也可由程序修改以改变文本框中显示的正文。()事件KeyPress:用户击键动作引发这一事件。在此事件过程中可过滤用户的输入。Change:当文本框的Text属性发生变化时引发这一事件。但要注意如果用户输入时每输入一个字符发生一次Change事件。LostFocus:当输入光标离开文本框时发生这一事件。常用此事件过程检查Text属性的内容。()过程和方法SetFocus它把光标放在特定的文本框中。在创建有多个文本框的窗体时通过该方法可把用户的输入焦点放在最重要的文本框上其句法如下:,对象名,SetFocusName属性。(CommandButton)中的程序决定的。()属性的共有属性外以下属性对命令按钮非常重要:Caption:它是显示在命令按钮上的字符串。对命令按钮来说应该给出一个对其功能有明确说明的标题。可以使用汉字。Cancel:当为True时按Esc键时和按该按钮的效果相同。Default:当为True时按回车键和按该按钮效果相同。()事件、过程和方法Click事件。按命令按钮所执行的动作就是由该事件过程中的程序代码决定的。(OptionButton)、复选钮(CheckBox)出选择。()属性Value属性。它表示按钮的状态。对于单选钮Value的值可取为True和False对于复选钮Value的值可取为、和。其中表示没有选中表示选中而表示禁止(以灰色显示)。()事件、过程和方法Click事件但意义不大。(Frame)成为一组从中只能选择一个。对于其它对象它提供了视觉上的区分和总体激活及屏蔽特性。()属性Caption属性它是显示在成组框上的文本(标题)。Enabled属性对成组框也很重要当将其设置为False时成组框上的标题正文变灰其上的所有的对象都被屏蔽(不可操作状态)。()事件、过程和方法(除标题外)和图形。(ListBox)(用鼠标单击它)。如果列表项目太多框中显示不完此时列表框会带有垂直滚动条。()属性List:该属性是一个数组其中保存了所在列表项。在设计时不能修改用以下句法可访问列表框中的列表项:,对象名,List(列表项的编号)其中对象名为列表框的Name属性列表项从上到下编号第一个的编号为。ListCount:列表框中列表项的数目。不能直接修改。Listindex:最后选中的列表项编号。如果未选中任何项目则其值为。Text:最后一次选中的列表项中的正文。不能直接修改。它的内容与List(Listlndex)相同。()事件、过程和方法Click和DblClick事件。一般来说用户选择了一项之后还可能改变选择、所以不用编写Click事件过程的代码。AddItem、Clear和RemoveItem用于在运行时修改列表框中的内容。AddItem:用于在列表框中插入一个列表项(正文)。可以指定插入的位置如未指定则插入到所有列表项之后。用法如下:,对象名,AddItem列表项正文,插入位置编号,Clear:删除列表中的所有项。RemoveItem:用于从列表框中删除一项。用法如下:,对象名,RemoveItem删除项编号(ComboBox)Style属性决定。()属性Style:确定组合列表框的类型和功能各设置值的作用如下表:设置值作用创建一个下拉式表框框右有一个向下的箭头单击它可拉出列表来。框中是一个文本域可输入文本。创建一个简单组合框。由文本域和一个列表组成列表不是下拉的所有列表项均显示出来。创建一个下拉式列表框没有文本输入域。框中只显示一个列表项单击右边向下的箭头时才拉出一个列表来。Text:包括用户选中项中的字符串或者文者输入域中的内容。()事件、过程和方法Style属性。仅当Style属性为时可响应DblClick事件。另两种风格响应Click事件。而编辑文本时会产生Change事件。AddItem、Clear和RemoveItem方法也适用于组合框用法与列表框相同。(Timer)时是不可见的。设计时在窗体上显示一个图标。()属性Name:计时器的标识符。Enable:为True时起作用。Interval:确定触发计时器事件的时间间隔以毫秒计。若为相当于Enabled属性设为False。最大值为。()事件、过程和方法行一定的动作。此控件没有方法与之相联系。(CommonDialogControl)VB中内建的控件使用它必须有扩展工具文件CMDIALOGVBX的支持即在项目窗口内应列出该文件可用VB的File(文件)菜单中的AddFile(添加文件)命令将其加到项目中来。此控件提供了一套标准的对话框用于打开文件、保存文件、打印文件、改变颜色或字体等。对话框来。到底显示什么对话框由其属性决定。图是一个显示出来的打开文件对话框。以下只介绍文件对话框(包括打开文件和保存文件对话框)。图打开文件对话框()属性Action:指明显示的对话框类型Action属性值如下:设置值显示的对话框无动作打开文件对话框将文件保存为对话框颜色对话框字体对话框打印机对话框启动帮助WINHELPEXE在代码中应当在本控件的其它属性设置完之后再设置Action属性为某一个有效值运行时能显示和Action属性对应的对话框。Filter:指定显示在对话框上的类型列表框中的文件过滤字符串。,通用对话框名Filter,=描述|过滤字符串|描述|过滤字符串,Filterlndex:指定一个缺省的文件过滤字符串的编号。如果用Filter属性指定了多个过滤字符串可利用这一属性为打开文件和保存文件对话框指定一个缺省的过滤字符串。所定义的第一个过滤字符串的编号为。InitDir:指明初始的文件目录。如果未指定此属性则使用当前目录。DialogTitle:设置在对话框的标题栏中显示的字符串。若不设置则在打开文件对话框中显示的标题是Open而在保存文件对话框中的标题是SaveAs。FileName:确定选定的文件的文件名和路径。()事件、过程和方法列表双击驱动器列表项会改变目录和文件的列表。操纵通用对话框的方法和Windows中的标准方法一致。这一切都不需再编写事件过程的代码进一步简化了程序。(Menu)VB中菜单的设计是很简单的设计工具是菜单设计窗口。从Windows(窗口)菜单中选择MenuDesign(菜单设计)命令或者选择工具条上的按钮。图菜单设计窗口Caption:|菜单标题文本框用来输入菜单名或命令名它将来出现在应用程序的菜单条中。要在一系列菜单命令中用横线将命令分组可在此文本框中键入一个连字符()。要使用户能用键盘操纵菜单命令可在菜单名内的某字母前放一个字符“”。程序运行时这个字母下面有下划线用户可用ALT此字母键来激活这一命令。Name:菜单控件名文本框。在这里为菜单项指定一个标识符(Name属性)。在程序代码中可以通过这一标识符来引用此菜单命令。这个标识符并不出现在菜单中。此属性象其它控件的Name属性一样Index:索引号文本框。指定菜单的Index属性(输入一个整数)用来决定此菜单项在控制数组中的位置这一位置和其在屏幕上的位置无关。Shortcut:下拉式列表框。从中可为此菜单命令选择一个简捷键。WindosList复选钮。如果想要此菜单控件包括一个所有打开的MDI(多文档界面)子窗口的列表的话要选择此复选钮(方框中有一个选择记号×)。HelpContextID:上下文帮助标识号文本框。在框中可输入一个唯一的一个整数作为此菜单命令的上下文帮助标识号。Checked选择复选框。如要在菜单初次出现时在其左侧有一个被选标记()可选定此复选框。Enabled生效复选框。如选定此复选框(方框中有叉号)则此菜单命令出现时即可使用(在菜单中以实文字出现)若是未选(方框中是空的)则此菜单命令出现时是虚化的。Visible可见性复选框。如选定此复选框(方框中有叉号)则此菜单命令出现时有菜单条中是可见的否则是不可见的。这两个按钮用于改变菜单命令的级别。每个菜单命令还可以带有子菜单可最多创建四层菜单。|这两个按钮可在同一层菜单中改变某菜单项的位置。示。窗口还包括下列按钮(表中列出按钮的名称和对其的说明)按钮名称说明Next(下一个)将选定内容移到下一行。Insert(插入)在当前选定行前加一行。Delete(删除)删除选定的行。OK关闭菜单设计窗口并将菜单项目的改变加到所选的窗体上。Cancel(取消)关闭菜单设计窗口取消所有对菜单所作的改变。菜单对象接收Click事件在Click事件过程中编写执行对应命令的代码。()程序界面设计实例个辅窗口组成。两个程序例每个程序例有一个辅窗口(图、图)。主窗口作为总的界面。如图所示。启动VB从“File”(文件)菜单中选择“NewProject”(新项目)命令从项目窗口中移去除Form之外的所有文件。用属性设置窗口将Form的Caption属性设置为图中的标题将其Name属性设为frmMain从“Window”菜单中选择“MenuDesign”命令打开菜单设计窗口(参见图)按图设计菜单。从工具箱中选择命令按钮工具。在窗口中“画”出命令按钮。菜单和命令按钮的属性如下表:项目CaptionName一级菜单选项,O,MnuControls二级菜单项VisualBasic程序举例(),C,MnuCheck二级菜单项VisualBasic程序举例(),L,MnuListBox一级菜单帮助,H,MnuHlp命令按钮退出,X,CmdExit图界面设计实例(主窗口)图在所有的窗口中命令按钮使用的字体有关的属性都相同如下表:字体属性FontNameFontsizeFontBoldFontltalic设置宋体‘True‘Faise例一和例二中窗体上的控件的属性如下两表所示:图例二窗口程序例一窗口中的控件:对象CaptionName窗体VisualBasic程序举例()frmListBox命令按钮添加,A,cmdAdd命令按钮删除,R,cmdRemove命令按钮全清除,I,cmdClear命令按钮关闭,C,cmdClose标签(无外框)加入的列表项,N,:lblName标签(无外框)列表项数目:lblClient标签(有框)无lblDisplay列表框无lstClient文本框无txtName程序例二窗口中的控件:对象CaptionName窗体VisualBasic程序举例()frmCheck标签请在下面的正文框中输入正文:lblEnter文本框无txtDisplay成组框字体风格frame复选钮粗体,B,chkBold复选钮斜体,I,chkltalic命令按钮关闭,C,cmdClose利用工具箱中的工具和属性设置窗口按以上属性设计各控件位置和大小可参考图、图和图四、编写程序代码使用代码窗口图代码窗口(参见图)来输入、显示和编辑程序代码。你可以打开任意多个代码窗口从而可以轻易地察看不同窗体、模块中的代码并可在各个窗口间复制粘贴代码。ViewCode(察看代码)按钮。而选择ViewForm(察看窗体)按钮可察看窗体。中打开代码窗口可用鼠标双击一个控件或窗体本身或者从View(察看菜单)中选择Code(简捷键F)命令。(ObjectBox):对于窗体对象框中列出了当前窗体和其中的所有的控制。(ProcedureBox):如果正在编辑窗体代码过程列表框列出所有的能为VisualBasic识别的属于窗体和其中的控制的事件过程。如果选择一个事件则与此事件名相联系的事件过程或者事件过程模板显示在代码窗口的下部。如果(general)显示在对象列表框中过程列表框中就列出所有的为此窗体创建的过程(可为此窗体中的任何过程所调用)。如果正在编辑一个代码模块中的代码则过程列表框中列出所有的在此模块中的全程过程。(如图所示)可用鼠标拖曳此条将代码窗口水平分成两部分(两个分窗口)每个部分可分别用滚动条滚动。因而可同时看到代码的不同部分。在对象列表框和过程列表中的信息适用于具有焦点的分窗口。若把分隔条再拖回窗口的顶部就关闭了分隔出来的窗口。代码窗口是一个功能强大的程序编辑器它可使用的编辑命令列在“编辑”菜单中。程序设计中的一些问题()VisualBasic中与用户交互的语句和函数VisualBasic中包括了一些QuickBasic中没有的与用户交互的语句和函数。常用的是InputBoxInputBox$函数和MsgBox函数和语句。下面分别加以介绍。InputBoxInputBox$函数:用户输入文本或选择一个按钮。当用户单击“OK”钮或按回车键该函数返回文本框中的文本串(用户输入的或是缺省的)。若用户选择“Cancel”钮则返回一个空字符串("")。用法如下:IputBox,$,(提示字符串,,标题字符串,,,缺省文本串,,xposypos,,,)题栏中如忽略则标题空着缺省文本串作为缺省文本显示在输入文本框中如忽略则输入文本框显示了出来时是空的xpos是对话框左上角的X坐标(以屏幕的左上角为原点)单位是“特维”(Twip)而ypos是对应的Y坐标。MsgBox函数和MsgBox语句:MsgBox函数返回一个反映用户所选择的按钮的数值但MsgBox语句不返回数值。函数的用法如下:=MsgBox(信息字符串,,类型,,标题字符串,,)语句的用法如下:MsgBox信息字符串,,类型,,标题字符串,,MsgBox语句和函数都有以下参数:量和类型的数、表示显示图标样式的数、表示缺省按钮的数以及表示信息框模式的数。CONSTANTTXT中都事先定义好了使用时可从此文件中复制常数的定义。()变量与过程的作用域VB应用程序一般都有不只一个文件。每个文件称为一个模块(Module)窗体的定义及其相关的所有代码都放在一个文件中文件的后缀FRM这个文件称为窗体模块。此外还可创建只包括代码的应用程序文件它不从属于任何窗体。代码模块的文件名后缀为BAS。一个变量或过程(子程序和自定义函数)随所处的位置不同可被访问的范围也不相同变量或过程可被访问的范围称为该变量或过程的作用域。在VB中作用域有三级它们是全程级、模块级和过程级。下面分别加以说明:何地方调用这称为全程过程。对于变量和常数要使其可在应用程序的任何部分都可被访问除必须放在代码模块中外还需用Global关键字加以声明声明方法如下:Global变量名,As类型,其中变量名既可以是简单也可以是下标变量(数组)。全程常量定义如下:GloblaConst常数名=值若为字符串常数后面的值应用双引号("")括起来。(常量)在一个模块(包括代码模块)内但又在此模块的任何过程之外声明的则此变量(常量)可被模块内的所有过程所共享这是模块级变量。而模块内的过程可被此模块内的任何过程所调用这属于模块级过程。此变量或常量只能被本过程所使用在别的过程中是不可访问的。这就是过程级的变量(常量)。示例程序代码示例程序有三个窗体在每个窗体中分别输入代码。首先是主窗体。在主窗体中只要编写响应菜单命令和退出按钮的过程即可。从项目窗口(参见图)中选择frmMain窗体并单击“ViewCode”按钮打开Form的代码窗口。在左面的对象列表框中的下拉式的列表中找出菜单项名mnuCheck在右面的过程列表框的下拉列表中找出它的Click过程单击之后在代码窗口中就有了一个mnuCheckClick()的过程模板在Sub和EndSub之间输入代码得到下面程序(代码的作用已在注释中加以说明):SubmnuCheckclick()EndSubSubmnuListBoxClick()frmLostBoxShow‘显示第二个程序例的窗体EndSubSubcmdEixtClick()End‘当用户单击“退出”命令按钮时结束程序的运行。EndSubfrmCheck窗体的代码窗口输入如下代码:SubchkBoldClick()Click事件。Value属性的值代表了复选框的状态。ifChkBoldValue=Then‘如果复选框被选择txtDisplayFontBold=True‘文本框中显示的字符变粗体Else‘如果复选框未被选择txtDisplayFontBold=False‘文本框中显示的字体为正常体EndifEndSubSubchkltalicClick()Click事件。Value属性的值代表了复选框的状态。ifChkltalicValue=Then‘如果复选框被选择txtDisplayFontltalic=True‘文本框中显示的字符变为斜体Else‘如果复选框未被选择txtDispalyFontltalic=False‘文本框中显示的字体为正常体EndifEndSubSubcmdCloseClick()UnloadfrmCheck‘用户按“关闭”按钮关闭示例一的窗体EndSubfrmListBox窗体的代码窗口在Declaration中输入模块级的变量声明:DimindexAsInteger‘整型变量index指出添加项的序号然后在各个对象的对应事件过程中输入如下的代码:SubcmdAddClick()‘用户按“添加”按钮IstClientAddltemtxtNameTextindex‘在列表框中加入第一项txtNameText=""‘清除文本框中的内容txtNameSetFocus‘将输入焦点重放在文本框上lblDisplayCaption=lstClientListCount‘用标签显示在列表中加入项的序号index=index‘设置下一个列表项的序号EndSubSubcmdClearClick()‘用户按“全清除”按钮IstClientClear‘将列表清空cmdRemoveEnabled=False‘使“删除”按钮变灰(失效)lblDisplyCaption=lstClientListCount‘用标签显示列表项数index=‘将列表项号置零EndSubSubcmdCloseClick()‘用户按“关闭”按钮UnloadfrmListBox‘关闭列例程序二窗体EndSubSubcmdRemoveClick()‘用户按“删除”按钮DimindAsIiteger‘引变量为所选择的列表项的序号Ind=IstClientListlndex‘得到所选列表项的序号IfInd>=Then‘确认有项目被选择IstClientRemoveltemInd‘将所有选项从列表中删除IblDisplayCaption=lstClientListCountElseBeep‘这条语句不应被执行因为如果无被选项“删除”按钮是失效的。请看下面的代码。EndiflstClientListindex不等于()时说明有项目被选择cmdRemoveEnabled=(lstClientListindex<>)index=index‘每按一次“删除”按钮项目数减EndSubSubFormLoad()index=‘初始时置列表序号为EndSubSublstClientClick()‘用户单击某一列表项从而选择它cmdRemoveEnabled=(lstClientListlndex<>‘使“删除”按钮生效EndSubSublstClientDblClick()‘用户双击某项相当于按了“删除”按钮cmdRemoveValue=True‘命令按钮的Value属性为True()时按钮被按下EndSubSubtxtNameChange()cmdAddEnabled=(Len(txtNameText)>)EudSub五、程序的调试VB集成开发环境内包括了很多的程序调试工具它包括调试工具条按钮、菜单命调试工具()Run(运行)菜单中的命令Run”和“Debug”菜单中其中有些命令可从工具条按钮或简捷键Start(开始)命令:工具条上的按钮:简捷键:F(如果有的话)这一命令只在设计阶段有效。Continue(继续)命令:简捷键:F序的运行。程序运行中断运行中的错误、遇Stop(停止)语句、遇到代码中的断点、选择了Break(中断)命令或者在运行时按了CtrlBreak组合键等引起的。Break(中断)命令:工具条按钮:简捷键:CtrlBreak编辑结果要在重新启动程序之后才能生效。此命令只在运行时才能使用。End(结束)命令工具条按钮:停止程序的运行并返回设计阶段。此命令在运行时以及在断模式下能用。Restart(重启动)命令简捷键:ShiftF停止运行的程序在继续运行前重新初始化程序中的变量。如果在程序运行或是处于中断模式时选择此命令则运行中止并重新启动。此命令只在运行时间或处于中断模式时才可使用。()Debug(调试)菜单中的命令AddWatch(增加观察点)命令显示一个对话框你可以往其中加入观察表达式表达式可为任何有效的Basic表达式。lnstantWatch(即时观察)命令工具按钮:简捷键:ShiftF(属性)或选择表达式再选择这一命令或工具条上的按钮或按简捷键时弹出一个对话框并显示欲观察的变量或表达式的值。只当在中断模式下有效。EditWatch(编辑观察表达式)命令一条观察表达式、删除所有表达式或者增加观察表达式。Calls(调用)命令工具按钮:简捷:CtrlLSingeStep(单步执行)命令工具条按钮:简捷键:F语句的作用。此命令只在中断模式下有效。ProcedureStep(过程单步)命令工具条按钮:简捷键:ShiftF(Sub)和函数(Function)过程当作一条单独的可执行语句来执行执行完之后移到下一条语句然后暂停。此命令只在中断模式下生效。ToggleBreakpoint(转换断点)命令工具条按钮:简捷键:F颜色是由Options(选项)菜单中的Environment(环境)命令来设置的。此命令在运行阶段无效。ClearAllBreakpoints(清除所有的断点)命令断。此命令在运行阶段无效。SetNextStatement(设置下一语句)过的代码不再执行。此命令只在中断模式下有效。可设置的下一条语句只能是同一过程中的语句。ShowNextStatement(显示下一条语句)命令调试窗口VB集成开发环境中每当程序运行时都会弹出调试窗口但这时的调试窗口只是显示模式不能输入VB的语句。程序中DebugPrint语句的输出都会显示在调试窗口中。当按中断按钮或CtrlBreak组合键或处于单步运行时程序处于暂停状态并激活调试窗口调试窗口的上部显示观察表达式(如果有的话)在其下部可输入任何合法的VB语句按回车键后立刻执行。可以修改变量或执行一个过程还可以修改运行时可以修改的对象的属性值。但修改只是暂时的代码窗口中的源程序不会变化。在调试窗口中可用Print方法观察当时变量或表达式的值。要注意的是只能修改当前过程的过程级变量、当前过程的参数、模块级变量和全程变量。六、图形编程Windows的关键部件没有图形就没有Windows。前面提到的各种对象的图形还不能说是程序员设计出来的。VB提供了丰富的图形功能窗体和图片框都可以成为程序员的“图板”在其上可“写字”、“作画”。图形除与窗体、图片框对象有关外VB的图形方法还可以作用于打印机对象。这里只介绍窗体和图片框且以窗体为主关于窗体的讨论同样适用于图片框。屏幕坐标VB提供了用于确定窗体内对象位置的缺省坐标系。窗体的左上角标为()横向(X)向右坐标增加纵向(Y)向下坐标增加。X和Y坐标的最大值由窗体的Width和Height属性决定。单位由窗体的ScaleMode属性决定。缺省时为“特维”(Twip)。ScaleMode属性与所使用的单位的关系如下:ScaleMode属性设置值度量单位用户定义Twip(缺省值)点(每英寸点)象素(与显示器有关)字符(垂直:英寸水平:英寸)英寸毫米厘米以下属性描述窗体的坐标系统。ScaleLeft、ScaleTop:定义窗体左上角在窗体坐标系中的坐标缺省值为。通过设置这两个属性可定义用户自己的坐标原点。ScaleWidth、ScaleHeight:定义窗坐标系中的X方向和Y方向的最大坐标值(单位由ScaleMode决定)和方向。缺省方向为X向右为增加Y向下为增加此时这两个属性均大于。小于表示与缺省方向相反。VB还是提供了Scale方法来设置用户的坐标系。Scale方法的句法如下:,Scale,(左X顶Y)(右X底Y),其中对象可以是窗体、图片框或打印机。左X和顶Y右X和底Y分别是左上角与右下角的X和Y的用户规定的坐标值。VB从这两个点计算ScaleWidth和ScaleHeight的值。公式为:ScaleWidth=右X左XScaleHeight=底Y顶Y。若不带参数调用Scale方法则取消用户坐标系而使用系统的缺省坐标系。(即单位为Twip左上角为原点)与图形有关的方法()Line方法,line,,Step,(XY),,Step,(XY),,颜色,,B,F,,,其中:XY指定线段的起点坐标若前面有关键字Step则表明起点坐标是相对当前的作图位置(由CurrentX和CurrentY属性决定)的若省略起点坐标则从当前作图位置开始。XY指定线段的终点坐标前面若有关键字Step坐标是相对于起点的终点坐标不能省略。颜色指定画线所用的颜色可由RGB函数或QBColor函数指定。若有关键字B画的不是直线而是矩形两组坐标值分别为矩形的两个对角点的坐标。F关键字表明用画矩形的颜色来填充矩形若省略F关键字则矩形的填充由FillColor和FillStyle属性决定。只有包括了B时才能包括F。当直线或矩形画完之后对象的CurrentX和CurrentY属性被置为作图结束位置。()Circle方法形。用法如下:,Circle,Step,(X,Y),半径,,颜色,,,起始角,,,终止角,,纵横比,,,,其中对象为窗体(非多文档界面窗体即窗体内没有子窗体)、图片框或打印机XY指定圆心的坐标若前面有关键字Step则圆心坐标是相对于CurrentX和CurrentY属性值的。坐标的单位和刻度是由对象的有关坐标属性决定的。颜色参数同Line方法缺省时使用对象的ForeColor属性指定的颜色画圆要画圆弧需指定起始角和终止角角度以弧度计量且大于或等于小于或等于π若要画扇形要将起始角和终止角设为负数。此时负号并不代表负的角度角度仍然被看作是正的负号代表要从圆心到圆弧画径向线要画椭圆必须指定纵横比缺省时为即画真正的圆不管使用什么坐标系若要填充图形请设置对象的FillColor和FillStyle属性但只能对封闭的图形才能填充。中列出了Circle方法的几个例子。上面是Circle方法的代码下面是它执行后的结果。Circle方法画圆或弧时总是按逆时针方向从图中可以看出起始角和终止角及其正负的效果。当省略中间的某些参数时。分隔参数的逗号不能省否则出错。但Circle方法不能以逗号结尾(图见下页)。()Pset方法,Pset,Step,(XY),颜色,其中XY指定要指定颜色的点的坐标若它前面有关键字Step则点是相对于CurrentX和CurrentY的即点的坐标应为(CurrentXxCurrentYy)。如不指定颜色则使用对象的ForeColor属性指定的颜色。使用这种方法可以很方便地清除一个象素即将指定的点设置为背景色。点的大小和外貌受到对象的DrawWidth和DrawMode两个属性的影响。利用此方法可画任意曲线。Print也可算是一种图形方法它的作用是在对象上输出字符。Print方法的用法和Basic中Print语句类似这里不再赘述。AutoRedraw属性设为True否则可能画不出图来。如窗体的AutoRedraw属性为False若在Formload()过程中调用图形方法窗体中不会画出图形来应将图形方法放在Paint事件过程中或放在由用户动作触发的事件过程中调用如Click过程。VisualBasic是一件引人入胜的事学习编写Windows应用程序从VisualBasic入手可以说是一个捷径。随着对Windows了解的深入就会产生学习更深入的内容的要求。比如可以从VisualBasic中学习WindowsAPI函数的调用方法为进一步学习利用C(C)语言编写Windows应用程序打下良好的基础。

用户评价(0)

关闭

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

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

提示

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

评分:

/45

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利