1、第第2章章 简单的简单的Visual Basic程序设计程序设计 2.1 窗体窗体 2.2 基本控件基本控件 2.3 程序编码规则程序编码规则 2.4 基本语句基本语句 2.1 窗体窗体 窗体也称作表单(窗体也称作表单(Form),是一种特定的类,它用于定义),是一种特定的类,它用于定义一个窗口。窗体是设计一个窗口。窗体是设计VB应用程序的基本平台,几乎所有的应用程序的基本平台,几乎所有的控件都是添加在窗体上的,大多数应用程序也是由窗体开始执控件都是添加在窗体上的,大多数应用程序也是由窗体开始执行的。行的。窗体的结构与窗体的结构与Windows环境下的窗口很类似,程序运行前环境下的窗口很类似,
2、程序运行前后都可以称为窗体。后都可以称为窗体。2.1.1 窗体的属性窗体的属性 窗体属性决定了窗体的外观、位置和行为等。窗体属性决定了窗体的外观、位置和行为等。设置设置窗体属性可以在程序设计时在属性窗口中手工设置,窗体属性可以在程序设计时在属性窗口中手工设置,也可以在程序运行时由代码实现也可以在程序运行时由代码实现。大部分属性及可以。大部分属性及可以通过属性窗口设置,也可以通过程序代码设置,而有通过属性窗口设置,也可以通过程序代码设置,而有些属性只能用属性窗口或代码设置。通常把只能通过些属性只能用属性窗口或代码设置。通常把只能通过属性窗口设置的属性称为属性窗口设置的属性称为“只读属性只读属性”
3、。窗体的属性很多,以下列出了窗体的常用属性以及窗体的属性很多,以下列出了窗体的常用属性以及相应的说明。相应的说明。2.1.1 窗体的属性窗体的属性 Name属性允许用户给窗体设置合适的名字,一个新窗体的属性允许用户给窗体设置合适的名字,一个新窗体的缺省名是窗体缺省名是窗体Form加上一个特定的整数。例如,第一个新窗加上一个特定的整数。例如,第一个新窗体是体是Form1。窗体不能用系统中的关键字来命名,否则可能。窗体不能用系统中的关键字来命名,否则可能在用户的代码中引起冲突。引用窗体的在用户的代码中引起冲突。引用窗体的Name属性的语法形式属性的语法形式为:为:Form1.Name其中其中For
4、m1为窗体名。为窗体名。Caption属性决定窗体标题栏中显示的文本。当用户创建一属性决定窗体标题栏中显示的文本。当用户创建一个新窗体时,其标题栏的缺省值也是窗体个新窗体时,其标题栏的缺省值也是窗体Form加上一个特定加上一个特定的整数,例如的整数,例如Form1等。引用窗体的等。引用窗体的Caption属性的语法是:属性的语法是:Form1.Caption2.1.1 窗体的属性窗体的属性 BorderStyle属性可以控制窗体边界类型及是否可以调整大属性可以控制窗体边界类型及是否可以调整大小,小,缺省值是缺省值是2。允许用户通过窗体边缘的热点改变窗体的大。允许用户通过窗体边缘的热点改变窗体的
5、大小和形状。在代码中引用小和形状。在代码中引用BorderStyle属性的方法是:属性的方法是:Form1.BorderStyle=【Value】当当Value值是值是0时,设置窗体无框架;时,设置窗体无框架;Value值为值为1时,设置窗体不可调整大小且具有单线框架;时,设置窗体不可调整大小且具有单线框架;Value值为值为2时,设置窗体可调整大小且具有双线框架;时,设置窗体可调整大小且具有双线框架;Value值为值为3时,设置窗体不可调整大小且具有双线框架。时,设置窗体不可调整大小且具有双线框架。2.1.1 窗体的属性窗体的属性 当用户运行应用程序时该属性有效,用来在窗体标题栏左当用户运行
6、应用程序时该属性有效,用来在窗体标题栏左边设置一个控制框,单击控制框显示一个控制菜单,有边设置一个控制框,单击控制框显示一个控制菜单,有【最大最大化化】、【最小化最小化】、【关闭关闭】等菜单选项。等菜单选项。ControlBox属性属性缺省设置为缺省设置为True,能够使窗体显示控制框。当窗体的,能够使窗体显示控制框。当窗体的BorderStyle属性设置为属性设置为0时控制框将不能显示。时控制框将不能显示。BackColor属性决定窗体的背景颜色,属性决定窗体的背景颜色,ForeColor属性决定属性决定窗体的前景颜色。引用这两种属性的语法是:窗体的前景颜色。引用这两种属性的语法是:Form
7、1.BackColor=【Color】Form1.ForeColor=【Color】2.1.1 窗体的属性窗体的属性 AutoRedraw属性控制窗体图像的重建,可以设置为属性控制窗体图像的重建,可以设置为True或或False。在其他窗口覆盖某窗口后,又返回该窗口时,如果将。在其他窗口覆盖某窗口后,又返回该窗口时,如果将AutoRedraw属性设置为属性设置为True,将自动刷新或者重画该窗体的,将自动刷新或者重画该窗体的所有图形。如果将该属性设置为所有图形。如果将该属性设置为False,则必须调用一事件过,则必须调用一事件过程来执行该项任务。此属性是使用图形方法如程来执行该项任务。此属性是
8、使用图形方法如Circle、Point、Cls和和Print的核心,设置的核心,设置AutoRedraw为为True,可以在窗体中,可以在窗体中重画这些方法的输出。其默认值为重画这些方法的输出。其默认值为False。2.1.1 窗体的属性窗体的属性 Height属性和属性和Width属性可以确定窗体的初始高度和宽度,属性可以确定窗体的初始高度和宽度,包括边框和标题栏。对于一个窗体,包括边框和标题栏。对于一个窗体,Height和和Width属性随用属性随用户或代码确定的窗体大小而改变,它们的最大值由系统决定。户或代码确定的窗体大小而改变,它们的最大值由系统决定。Left和和Top属性根据屏幕左上
9、角确定窗体的位置。属性根据屏幕左上角确定窗体的位置。Left属性属性确定窗体最左端和它的包容器最左端之间的距离;确定窗体最左端和它的包容器最左端之间的距离;Top属性确属性确定窗体最上端和它的包容器最上端之间的距离。通常定窗体最上端和它的包容器最上端之间的距离。通常Left和和Top属性在一个窗体中总是成对出现,当用户或通过代码移动属性在一个窗体中总是成对出现,当用户或通过代码移动窗体时,这两个属性值都会随之改变。窗体时,这两个属性值都会随之改变。2.1.1 窗体的属性窗体的属性 MaxButton属性和属性和MinButton属性决定窗体是否属性决定窗体是否能最大化或最小化。能最大化或最小化
10、。Maxbutton属性为属性为True时,表明时,表明窗体有最大化按钮;为窗体有最大化按钮;为False时,表明窗体没有最大时,表明窗体没有最大化按钮。化按钮。MinButton属性为属性为True时,表明窗体有最小时,表明窗体有最小化按钮;为化按钮;为False时,表明窗体没有最小化按钮。要时,表明窗体没有最小化按钮。要显示最大化或最小化按钮,显示最大化或最小化按钮,BoderStyle属性应设置属性应设置为为1或或2。当一个窗体被最大化时,最大化按钮会自动。当一个窗体被最大化时,最大化按钮会自动变为恢复按钮。变为恢复按钮。2.1.1 窗体的属性窗体的属性 Enable属性决定窗体是否对用
11、户产生的事件发生反应。该属性决定窗体是否对用户产生的事件发生反应。该属性为属性为True时,允许窗口对事件作出反应,为时,允许窗口对事件作出反应,为False时,禁止时,禁止窗体对事件作出反应。窗体对事件作出反应。Visible属性确定窗体是被显示还是被隐藏。设置为属性确定窗体是被显示还是被隐藏。设置为True时,时,能够使窗体可见;设置为能够使窗体可见;设置为False时,窗体将被隐藏。若要在启时,窗体将被隐藏。若要在启动时隐藏一个对象,可设置动时隐藏一个对象,可设置Visible属性为属性为False。FontSize属性确定窗体中文本大小,缺省时由系统定义。属性确定窗体中文本大小,缺省时
12、由系统定义。用户想要改变字体,可以设置用户想要改变字体,可以设置FontSize属性为不同的值。属性为不同的值。2.1.2 窗体的事件窗体的事件 如果说属性决定了对象的外观,方法决定了对象的行为,如果说属性决定了对象的外观,方法决定了对象的行为,那么事件就决定了对象之间联系的手段。与窗体有关的事件主那么事件就决定了对象之间联系的手段。与窗体有关的事件主要有以下几种:要有以下几种:Db 在程序运行时单击窗体内某个位置,在程序运行时单击窗体内某个位置,VB将调用将调用Form_Click事件过程。如果单击的是窗体内的控件,这时只能调用相应控事件过程。如果单击的是窗体内的控件,这时只能调用相应控件的
13、件的Click事件。事件。在程序运行时双击窗体内某个位置,就触发了两个事件。在程序运行时双击窗体内某个位置,就触发了两个事件。第一次按动鼠标,触发第一次按动鼠标,触发Click事件,第二次按动鼠标时触发事件,第二次按动鼠标时触发DblClick事件。事件。2.1.1 窗体的事件窗体的事件 一旦装载窗体,启动应用程序就自动产生该事件,一旦装载窗体,启动应用程序就自动产生该事件,Load事事件适用于在启动应用程序时对属性和变量的初始化。件适用于在启动应用程序时对属性和变量的初始化。Un 卸载窗体时发生卸载窗体时发生Unload事件。当该窗体在被装载时,它的事件。当该窗体在被装载时,它的所有控件都要
14、重新初始化。这个事件是由用户动作(用控件菜所有控件都要重新初始化。这个事件是由用户动作(用控件菜单关闭窗体)或一个单关闭窗体)或一个Unload语句触发的。语句触发的。当窗体收到或失去焦点时,当窗体收到或失去焦点时,GotFocus或或LostFocus事件会事件会发生。发生。2.2 基本控件基本控件 在在VB中设计窗口界面是通过使用窗体对象和各种控件对象中设计窗口界面是通过使用窗体对象和各种控件对象来完成的。控件用来获取用户的输入信息和显示输出信息。应来完成的。控件用来获取用户的输入信息和显示输出信息。应用程序中可用的控件包括文本框、命令按钮和列表框等。每个用程序中可用的控件包括文本框、命令
15、按钮和列表框等。每个控件都有一组属性、方法和事件控件都有一组属性、方法和事件。2.2.1 控件的基本概念控件的基本概念 VB的控件在广义上分为三类:内部控件、的控件在广义上分为三类:内部控件、ActiveX控件和控件和可插入的对象。在本节中主要介绍内部控件,其它两类会在以可插入的对象。在本节中主要介绍内部控件,其它两类会在以后的章节中涉及到。后的章节中涉及到。表表2-1总结了总结了VB工具箱中常用的内部控件。工具箱中常用的内部控件。2.2.1 控件的基本概念控件的基本概念 图标图标 控件名控件名 类名类名 缺省属性缺省属性 描述描述 标签标签Label Caption显示用户不可交互操作或不可
16、修改的文本显示用户不可交互操作或不可修改的文本 命令按钮命令按钮CommandButton Value在用户选定命令或操作后执行它在用户选定命令或操作后执行它 文本框文本框TextBox Text 显示显示True/False或或Yes/No选项。一次可在窗体上选选项。一次可在窗体上选定任意数目的复选框定任意数目的复选框 框架框架Frame Caption复选框复选框CheckBox Value选项按钮选项按钮CaptionButton Value列表框列表框Listbox Text 组合框组合框ComboBox Text 将文本框和列表框组合起来,使用户可以输入选项,将文本框和列表框组合起来
17、,使用户可以输入选项,也可从下拉列表中选择选项也可从下拉列表中选择选项 形状形状Shape Shape向窗体、框架或图片添加矩形、正方形、椭圆或圆向窗体、框架或图片添加矩形、正方形、椭圆或圆 图像图像Image Picture 显示位图、图标或显示位图、图标或Windows图元文件、图元文件、JPEG或或GIF图像文件图像文件 图片框图片框PictureBox Picture 显示位图、图标或显示位图、图标或Windows图元文件、图元文件、JPEG或或GIF文件,也可显示文本或充任其它控件的可视容器文件,也可显示文本或充任其它控件的可视容器 水平滚动条水平滚动条HScrollBarValue
18、 为那些不能自动提供滚动条的控件提供水平滚动条为那些不能自动提供滚动条的控件提供水平滚动条 垂直滚动条垂直滚动条VScrollBarValue 为那些不能自动提供滚动条的控件提供垂直滚动条为那些不能自动提供滚动条的控件提供垂直滚动条 定时器定时器 TimerEnable按指定时间间隔执行定时事件按指定时间间隔执行定时事件 表2-1 VB的内部控件 2.2.2 焦点的概念焦点的概念 焦点是接收用户鼠标和键盘输入的能力。当对象具有焦点焦点是接收用户鼠标和键盘输入的能力。当对象具有焦点时,可接受用户的输入。在时,可接受用户的输入。在Windows操作系统中,任一时刻操作系统中,任一时刻可运行几个应用
19、程序,但具有焦点的应用程序才有活动标题栏,可运行几个应用程序,但具有焦点的应用程序才有活动标题栏,才能接受用户输入。再有几个才能接受用户输入。再有几个TextBox的的VB窗体中,只有具窗体中,只有具有焦点的有焦点的TextBox才显示有键盘输入的文本。才显示有键盘输入的文本。当对象得到或失去焦点时,会产生当对象得到或失去焦点时,会产生GotFocus或或LostFocus事件。对象得到焦点时发生事件。对象得到焦点时发生GotFocus事件;对象失去焦点时事件;对象失去焦点时发生发生LostFocus事件。窗体和大多数控件支持这两个事件。事件。窗体和大多数控件支持这两个事件。2.2.3 标签(
20、标签(Label控件)控件)Label控件用于在窗体或其它容器中显示文本。标签的内容控件用于在窗体或其它容器中显示文本。标签的内容是只读的,用户不能直接修改显示的内容。通常用标签来标注是只读的,用户不能直接修改显示的内容。通常用标签来标注本身不具有本身不具有Caption属性的控件。在编程中常用属性的控件。在编程中常用Label作为其作为其它控件的标志,用来说明它们的意义或用法,还可以用于显示它控件的标志,用来说明它们的意义或用法,还可以用于显示标题、说明性文字或帮助信息等。可以编写代码改变标题、说明性文字或帮助信息等。可以编写代码改变Label控控件显示的文本以响应运行时的事件。件显示的文本
21、以响应运行时的事件。用来改变用来改变Label控件中显示的文本。其允许的文本长度最多控件中显示的文本。其允许的文本长度最多为为1024个字符。缺省情况下,当文本超过控件宽度时,文本个字符。缺省情况下,当文本超过控件宽度时,文本会自动换行,而当文本超过控件的高度时,超出部分将被裁掉。会自动换行,而当文本超过控件的高度时,超出部分将被裁掉。2.2.3 标签(标签(Label控件)控件)用于设置用于设置Caption中文本的对齐方式,共有中文本的对齐方式,共有3种可选值。如种可选值。如表表2-2所示。所示。值值对齐方式对齐方式0左对齐(LeftJustify)1右对齐(RightJustify)2居
22、中对齐CentreJustify)表表2-2 Alignment属性的可选值属性的可选值 2.2.3 标签(标签(Label控件)控件)用于确定标签的背景是否透明。有两种可选值:值为用于确定标签的背景是否透明。有两种可选值:值为0时,时,背景透明,标签后的背景和图形可见;值为背景透明,标签后的背景和图形可见;值为1时,背景不透明,时,背景不透明,标签后的背景和图形不可见。标签后的背景和图形不可见。Autosize和和Wordwrap Autosize属性确定标签是否会随标题内容的多少自动变化。属性确定标签是否会随标题内容的多少自动变化。值为值为True,则随,则随Caption内容多少自动调整
23、控件本身的大小,内容多少自动调整控件本身的大小,且不换行;值为且不换行;值为False,表示标签的尺寸不能自动调整,超出,表示标签的尺寸不能自动调整,超出尺寸范围的内容不予显示。尺寸范围的内容不予显示。Wordwrap属性用来设置当标签在属性用来设置当标签在水平方向上不能容纳标签中的文本时是否换行显示文本。值为水平方向上不能容纳标签中的文本时是否换行显示文本。值为True时,表示文本换行显示,标签在垂直方向上放大或缩小时,表示文本换行显示,标签在垂直方向上放大或缩小以适合文本的大小,标签水平方向的宽度保持不变;值为以适合文本的大小,标签水平方向的宽度保持不变;值为False时,表示文本不换行。
24、时,表示文本不换行。2.2.4 文本框(文本框(TextBox控件)控件)文本框控件用来在运行时显示用户输入的信息,或者在设文本框控件用来在运行时显示用户输入的信息,或者在设计或运行时,通过对控件的计或运行时,通过对控件的Text属性赋值,作为信息输出的对属性赋值,作为信息输出的对象。象。Text 该属性的值就是文本框控件内显示的内容。当文本内容改该属性的值就是文本框控件内显示的内容。当文本内容改变时,变时,Text属性也随之变化。通常,属性也随之变化。通常,Text属性允许的最大字符属性允许的最大字符数为数为2048。MaxLength 该属性用于设置在文本框中允许输入的最大字符数,缺省该属
25、性用于设置在文本框中允许输入的最大字符数,缺省值为值为0,表示字符数无限制;若给该属性赋一个具体的数值,表示字符数无限制;若给该属性赋一个具体的数值,该数值就作为文本的长度限制该数值就作为文本的长度限制。2.2.4 文本框(文本框(TextBox控件)控件)MultiLine 该属性缺省值为该属性缺省值为False,表示只允许单行输入,并忽略回车,表示只允许单行输入,并忽略回车键的作用。当该属性值为键的作用。当该属性值为True时,表示允许多行输入,当文时,表示允许多行输入,当文本长度超过文本框宽度时,文本会自动换行,同时,允许的文本长度超过文本框宽度时,文本会自动换行,同时,允许的文本容量也
26、会相应增加。本容量也会相应增加。PassWordChar 设置该属性是为了掩盖文本框中输入的字符。它常用于设设置该属性是为了掩盖文本框中输入的字符。它常用于设置密码输入,只显示同一个字符,如置密码输入,只显示同一个字符,如PassWordChar设定为设定为“*”,则无论用户在文本框输入什么字符,文本框中只显示,则无论用户在文本框输入什么字符,文本框中只显示用户设置替代的字符,显示形式为用户设置替代的字符,显示形式为“*”。2.2.4 文本框(文本框(TextBox控件)控件)Scrollbar 由于受文本框大小的限制,可能无法完全显示文本的内容,由于受文本框大小的限制,可能无法完全显示文本的
27、内容,这就可以用这就可以用ScrollBar属性来指定是否在文本框中添加水平或属性来指定是否在文本框中添加水平或垂直滚动条,该属性有四个值,见表垂直滚动条,该属性有四个值,见表2-3。系统常量系统常量数值数值意义意义None0无滚动条Horizonal1只添加水平滚动条Vertical2只添加垂直滚动条Both3同时添加水平和垂直滚动条表表2-3 Scrollbar属性属性 2.2.5 命令按钮(命令按钮(CommandButton控件)控件)Caption 命令按钮主要用来设计用户和应用程序的交互式访问,常命令按钮主要用来设计用户和应用程序的交互式访问,常常用它来接收用户的操作信息,激发某些
28、事件,实现一个命令常用它来接收用户的操作信息,激发某些事件,实现一个命令的启动、中断和结束等。的启动、中断和结束等。用于设置命令按钮上显示的文本。用于设置命令按钮上显示的文本。Caption属性最多包含属性最多包含255个字符。若标题超过了命令按钮的宽度,文本将会自动换个字符。若标题超过了命令按钮的宽度,文本将会自动换行。行。Style 该属性的作用是设置控件的外观是标准的(标准该属性的作用是设置控件的外观是标准的(标准Windows)或者是图形的(带有自定义图片)。其值为或者是图形的(带有自定义图片)。其值为0时是标准的,为时是标准的,为1时是图形的。时是图形的。2.2.5 命令按钮(命令按
29、钮(CommandButton控件)控件)Default和和Cancel 在每个窗体上都可选择一个命令按钮作为缺省的命令按钮,在每个窗体上都可选择一个命令按钮作为缺省的命令按钮,也就是说,不管窗体上的哪个控件有焦点,只要用户按也就是说,不管窗体上的哪个控件有焦点,只要用户按Enter键,就已单击此缺省按钮。为了指定一个缺省命令按钮,应将键,就已单击此缺省按钮。为了指定一个缺省命令按钮,应将其其Default属性设置为属性设置为True。把命令按钮的把命令按钮的Cancel属性设置为属性设置为True后,就指定了缺省的后,就指定了缺省的取消按钮,不管窗体的哪个控件有焦点,按取消按钮,不管窗体的哪
30、个控件有焦点,按Esc键,就已单击键,就已单击此缺省按钮。此缺省按钮。2.2.5 命令按钮(命令按钮(CommandButton控件)控件)命令按钮事件命令按钮事件 Click事件是命令按钮最重要的触发方式,单击命令按钮将事件是命令按钮最重要的触发方式,单击命令按钮将触发按钮的触发按钮的Click事件,并调用已写入事件,并调用已写入Click事件过程中的代码。事件过程中的代码。单击命令按钮后也将生成单击命令按钮后也将生成MouseDown和和MouseUp事件。如事件。如果要在这些相关事件中附加事件过程,则应确保操作不发生冲果要在这些相关事件中附加事件过程,则应确保操作不发生冲突。控件不同,这
31、三个事件发生的顺序也不同,命令按钮中发突。控件不同,这三个事件发生的顺序也不同,命令按钮中发生的顺序为:生的顺序为:MouseDown、Click、MouseUp。命令按钮不。命令按钮不支持双击事件支持双击事件。2.2.6 定时器定时器(Timer控件)控件)该属性指定该属性指定Timer事件被触发的间隔毫秒数,其值在事件被触发的间隔毫秒数,其值在0 64767之间。若将其设为之间。若将其设为0或负数,定时器停止工作。其语法格式为:或负数,定时器停止工作。其语法格式为:Timer.Interval=时间间隔时间间隔 定时器控件主要有两个功能:一个是用于定时完成某项任务,定时器控件主要有两个功能
32、:一个是用于定时完成某项任务,即每隔一段固定时间就执行一次相同的任务;另一个是进行某即每隔一段固定时间就执行一次相同的任务;另一个是进行某种后台处理。种后台处理。计时器控件运行时不可见,所以它的位置无关紧要,通常只计时器控件运行时不可见,所以它的位置无关紧要,通常只需在工具箱中双击计时器控件图标即可。需在工具箱中双击计时器控件图标即可。Interval属性属性 2.2.6 定时器定时器(Timer控件)控件)该属性决定定时器控件是否能响应该属性决定定时器控件是否能响应Timer事件,设置为事件,设置为True时,定时器以时,定时器以Interval属性值为时间间隔触发属性值为时间间隔触发Tim
33、er事件,若设事件,若设置为置为False定时器控件失效。定时器控件失效。定时器控件只能响应定时器控件只能响应Timer事件。每隔固定时间所运行的程事件。每隔固定时间所运行的程序代码就是写在这个事件中。序代码就是写在这个事件中。Interval属性属性 事件事件2.3 程序编码规则程序编码规则 VB的窗体和控件提供程序的可视化界面,但是程序中大部分的窗体和控件提供程序的可视化界面,但是程序中大部分的实际工作是由程序代码来处理的。和其他的高级语言一样,的实际工作是由程序代码来处理的。和其他的高级语言一样,在编写程序代码时在编写程序代码时VB也有自己的编码规则。也有自己的编码规则。2.3.1 注释
34、注释 VB在编译程序时会自动跳过注释行。在编译程序时会自动跳过注释行。要添加注释,有三种情况:要添加注释,有三种情况:1.用撇号用撇号“”开始引导注释行;开始引导注释行;2.用用Rem开头引导注释行;开头引导注释行;3.使用使用【编辑编辑】工具栏中的工具栏中的【设置注释块设置注释块】、【解除注释块解除注释块】命令将若干语句行或文字设置命令将若干语句行或文字设置/取消为注释块取消为注释块注释可以和语句在同一行,并写在语句的后面,也可占据一整注释可以和语句在同一行,并写在语句的后面,也可占据一整行。例如:行。例如:这是编写的第一个程序这是编写的第一个程序 Form1.Width=400 将窗体的宽
35、度设置为将窗体的宽度设置为400 2.3.2 语句书写自由语句书写自由 1.如果想在一行中写下多条语句,则每条语句中间必须用冒如果想在一行中写下多条语句,则每条语句中间必须用冒号号“:”作为分隔符号。但是,为了方便阅读,一行最好只写一作为分隔符号。但是,为了方便阅读,一行最好只写一条语句。条语句。2.一条语句如果在一行内写不下,一条语句如果在一行内写不下,VB允许将单行语句分成允许将单行语句分成若干行书写,只要在行后加入续行符(一个空格后跟一个下划若干行书写,只要在行后加入续行符(一个空格后跟一个下划线线“_”)将长语句分成多行。)将长语句分成多行。3.一行最多允许一行最多允许255个字符。个
36、字符。4.在在VB代码中,字母不区分大小写。代码中,字母不区分大小写。(1)VB对用户程序代码中关键字的首字母总被转换成大写字对用户程序代码中关键字的首字母总被转换成大写字母,其余字母转换成小写字母;母,其余字母转换成小写字母;(2)对于用户自定义的变量名、过程名、函数名、,对于用户自定义的变量名、过程名、函数名、,VB以第以第一次定义的为准,以后输入的自动转换成首次定义的形式。一次定义的为准,以后输入的自动转换成首次定义的形式。2.3.3良好的编程习惯良好的编程习惯 良好的编程习惯实际上就是一些编码约定,可读性强且意义清楚,并且良好的编程习惯实际上就是一些编码约定,可读性强且意义清楚,并且尽
37、可能的直观。尽可能的直观。1.使用缩进使用缩进 在编写代码时,习惯上对过程、判断语句、循环结构的正文部分进行缩在编写代码时,习惯上对过程、判断语句、循环结构的正文部分进行缩进,使程序代码的可读性大为改善。例如下面一段程序:进,使程序代码的可读性大为改善。例如下面一段程序:Const N=6 Private Sub Command1_Click()Dim i As Integer,j As Integer,Temp As Integer For i=1 To N-1 For j=i+1 To N If a(i)a(j)Then Temp=a(i):a(i)=a(j):a(j)=TempEnd I
38、f Next jNext I End Sub2.3.3 良好的编程习惯良好的编程习惯 2.添加注释添加注释 每个人的编程思路会不一样,添加注释后会使接替别人的程序工作或阅每个人的编程思路会不一样,添加注释后会使接替别人的程序工作或阅读别人的程序变得相对容易一些。读别人的程序变得相对容易一些。3.当一行代码过长时,应使用下划线连接字符当一行代码过长时,应使用下划线连接字符“_”将代码截短为多行代将代码截短为多行代码,这样便于打印和调试字符串。尤其是需要一个比较长的字符串;来显示码,这样便于打印和调试字符串。尤其是需要一个比较长的字符串;来显示一个消息框(一个消息框(MsgBox),或输入框(),
39、或输入框(InputBox),或产生一个),或产生一个SQL字符字符串时,这一技术比较有用。串时,这一技术比较有用。4.变量命名变量命名 在程序中,常量和变量应该用一致的前缀来命名,这样很容易识别他们在程序中,常量和变量应该用一致的前缀来命名,这样很容易识别他们的数据类型。给变量加前缀可以指明他们的数据类型,例如:的数据类型。给变量加前缀可以指明他们的数据类型,例如:StrUserName为字符型变量,为字符型变量,DblTotal为双精度型变量等等。而且变量或为双精度型变量等等。而且变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用,过程名的主体应该使用大小写混合形式,并
40、且应该足够长以描述它的作用,如如SaveFile、RasterData。2.4 基本语句基本语句 程序是由语句、常量和声明部分等组成的,一条条的语句是程序是由语句、常量和声明部分等组成的,一条条的语句是程序的主体部分。在程序的主体部分。在VB语言中,常见的基本语句有:赋值语句、语言中,常见的基本语句有:赋值语句、输入函数、输出语句、消息框函数。输入函数、输出语句、消息框函数。2.4.1 赋值语句赋值语句 赋值语句是所有的程序设计中最基本的语句,可以把指定的赋值语句是所有的程序设计中最基本的语句,可以把指定的值赋给某个变量或某个带有属性的对象。其语句格式为:值赋给某个变量或某个带有属性的对象。其
41、语句格式为:格式格式1:变量名:变量名=表达式表达式 格式格式2:对象名对象名属性名属性名=表达式表达式 在格式在格式2中,如果对象名省略,则默认对象为当前窗体。中,如果对象名省略,则默认对象为当前窗体。功能:把功能:把“=”右边的表达式的值赋给右边的表达式的值赋给“=”左边的变量或对象左边的变量或对象的属性。的属性。例:例:Name=“ZhangSan”Con=True 赋值语句兼有计算和赋值的双重功能。首先计算赋值号右边赋值语句兼有计算和赋值的双重功能。首先计算赋值号右边的值,然后把结果赋给左边的变量或对象的属性。的值,然后把结果赋给左边的变量或对象的属性。2.4.1 赋值语句赋值语句 在
42、赋值时,需要注意下列问题:在赋值时,需要注意下列问题:1.在赋值语句中,在赋值语句中,”=”是赋值号,与数学意义上的符号不一是赋值号,与数学意义上的符号不一样。样。VB系统会根据所处的位置自动判断是赋值号还是等号。系统会根据所处的位置自动判断是赋值号还是等号。VB系统默认:在条件表达式中出现的是等号,否则为赋值号。系统默认:在条件表达式中出现的是等号,否则为赋值号。2.赋值号左边只能是变量,不能是常量、符号常量或表达式。赋值号左边只能是变量,不能是常量、符号常量或表达式。例如:例如:-a=4 a+b=2 Abs(a)=a+b 都是不合法的赋值语句,尤其负号的使用,都是不合法的赋值语句,尤其负号
43、的使用,-a相当于相当于(-1)*a,故故-a是表达式。是表达式。2.4.1 赋值语句赋值语句 在赋值时,需要注意下列问题:在赋值时,需要注意下列问题:1.在赋值语句中,在赋值语句中,”=”是赋值号,与数学意义上的符号不一样。是赋值号,与数学意义上的符号不一样。VB系统会根据所处的位置自动判断是赋值号还是等号。系统会根据所处的位置自动判断是赋值号还是等号。VB系统默认:系统默认:在条件表达式中出现的是等号,否则为赋值号。在条件表达式中出现的是等号,否则为赋值号。2.赋值号左边只能是变量,不能是常量、符号常量或表达式。例赋值号左边只能是变量,不能是常量、符号常量或表达式。例如:如:-a=4 a+
44、b=2 Abs(a)=a+b 都是不合法的赋值语句,尤其负号的使用,都是不合法的赋值语句,尤其负号的使用,-a相当于相当于(-1)*a,故,故-a是表达式。是表达式。2.4.1 赋值语句赋值语句 3.利用赋值语句在给对象的属性赋值时,必须将类型相容的数据利用赋值语句在给对象的属性赋值时,必须将类型相容的数据赋给它,否则会产生错误。当赋值号右边表达式的类型与左边变量的赋给它,否则会产生错误。当赋值号右边表达式的类型与左边变量的类型不一致的时候,系统会作以下处理:类型不一致的时候,系统会作以下处理:(1)当数值型表达式与左边的变量精度不同时,右边的表达式会强当数值型表达式与左边的变量精度不同时,右
45、边的表达式会强制转化为左边变量的精度。例如制转化为左边变量的精度。例如:a%=2.7 a为整型变量,转换时四舍五入,为整型变量,转换时四舍五入,a中的结果为中的结果为3 (2)当逻辑型数据赋给数值型时,当逻辑型数据赋给数值型时,True转化为转化为-1,False转化为转化为0。(3)当数值型数据赋给逻辑型时,非当数值型数据赋给逻辑型时,非0转化为转化为True,0转化为转化为False。(4)当左边是数值类型,右边是数字字符串时,右边会自动转换成当左边是数值类型,右边是数字字符串时,右边会自动转换成数值类型,然后在赋值。当右边的数字字符串中有非数字字符或空字数值类型,然后在赋值。当右边的数字
46、字符串中有非数字字符或空字符串时,就会出现错误。例如:符串时,就会出现错误。例如:a%=“123”a中的结果是中的结果是123,相当于执行,相当于执行a%=Val(“123”)a%=“12b3”系统出错。系统出错。“类型不匹配类型不匹配”(5)任何非字符型数据赋值给字符型,都自动转换为字符型。任何非字符型数据赋值给字符型,都自动转换为字符型。(6)任何类型的表达式都可以赋值给变体数据类型的变量。任何类型的表达式都可以赋值给变体数据类型的变量。2.4.1 赋值语句赋值语句 3.利用赋值语句在给对象的属性赋值时,必须将类型相容的数据利用赋值语句在给对象的属性赋值时,必须将类型相容的数据赋给它,否则
47、会产生错误。赋给它,否则会产生错误。4.不允许在同一个赋值语句中,同时给多个变量赋值。例如:不允许在同一个赋值语句中,同时给多个变量赋值。例如:Dim a%,b%,c%a=b=c=1 当程序执行到当程序执行到Dim语句时,会自动为语句时,会自动为a,b,c三个变量赋初值三个变量赋初值0。执行执行a=b=c=1时,系统会认为右边的两个时,系统会认为右边的两个”=”是等号,而左边是等号,而左边的的”=”是赋值号。首先系统要计算右边表达式的值,是赋值号。首先系统要计算右边表达式的值,b=c结果为结果为True,然后与,然后与1比较,比较,True的值为的值为-1,所以结果为,所以结果为False,最
48、后将,最后将False赋给数值型变量赋给数值型变量a,a的值为的值为0。故三个变量的结果仍然都为。故三个变量的结果仍然都为0。正确的书写格式为:正确的书写格式为:a=1:b=1:c=12.4.2 输入函数输入函数 在在VB中,数据的输入主要是用函数和文本框来实现的。最常中,数据的输入主要是用函数和文本框来实现的。最常见的是见的是InputBox()函数语句,程序通过此语句得到用户的输入函数语句,程序通过此语句得到用户的输入语句。语句。InputBox()函数可以打开一个对话框,等待用户输入内容或函数可以打开一个对话框,等待用户输入内容或按下按钮,当用户按下按下按钮,当用户按下【确定确定】按钮或
49、回车键时,函数返回所按钮或回车键时,函数返回所输入的值。其语法格式如下:输入的值。其语法格式如下:InputBox(prompt,title ,default,xPos,yPos)InputBox()函数一次只能输入一个值。如果想输入多个值,()函数一次只能输入一个值。如果想输入多个值,必须多次调用必须多次调用InputBox()函数。该函数经常与循环语句一起()函数。该函数经常与循环语句一起使用,进行多个指定的输入。使用,进行多个指定的输入。2.4.3 输出语句输出语句 在在VB中,数据的输出主要是通过中,数据的输出主要是通过Print语句和语句和Print方法实现方法实现的。的。Print
50、语句语句 Print语句不仅可以在窗体上显示文本字符串和表达式的值,语句不仅可以在窗体上显示文本字符串和表达式的值,而且还可以在其它图形对象或打印机上输出信息。其语法格式而且还可以在其它图形对象或打印机上输出信息。其语法格式为:为:Print 表达式表表达式表,|;说明:说明:(1)表达式表:是要输出的一个或多个数值或字符串表达式。表达式表:是要输出的一个或多个数值或字符串表达式。如果省略该项,则输出一个空行。对于数值表达式,打印出表如果省略该项,则输出一个空行。对于数值表达式,打印出表达式的值;对于字符串则原样输出。达式的值;对于字符串则原样输出。2.4.3 输出语句输出语句 (2)当输出多