【VB开源代码栏目提醒】:网学会员为广大网友收集整理了,从零开始编制VB程序 - 技术总结,希望对大家有所帮助!
第2章 从零开始编制
VB程序 本章要点 创建简单的应用程序。
对象对象的属性、事件和方法。
窗体外观设计显示文字常用事件和方法多窗体程序。
命令按钮焦点的概念常用属性、事件和方法。
标签外观设计常用事件和方法为其他控件提供访问键。
文本框简单应用多行、密码和只读文本框使用选定的文本。
开发
VB应用程序的一般步骤。
2.1 创建最简单的应用程序 要建立应用程序首先要明确这个应用程序执行后窗体的外观和内容如有哪些控件控件的外观控件之间的关系对控件进行操作时将发生哪些事件等。
2.1.1 不编写
代码的简单程序 【例2.1】创建一个无须编写
代码的简单程序程序运行时显示“HelloWorld”。
2.1.2 含有简单
代码的程序 上面的程序过于简单它没有提供与用户交互的功能。
要想使应用程序能够响应用户的操作就需要编写程序
代码。
【例2.2】编制一个含有简单
代码的程序。
程序界面和运行结果如图2.6所示。
1创建工程 2设计界面 按照图2.6所示的界面单击工具箱文本框控件图标在窗体上画出一个文本框。
选择工具箱命令按钮图标在窗体上画出三个命令按钮。
调整好各控件的大小和位置。
3设置属性 窗体和各控件的属性设置如表2.1所示。
4编写
代码 ① 为【显示】按钮的单击事件编写
代码。
在窗体设计窗口双击【显示】按钮自动打开如图2.7所示的
代码窗口光标停留在该按钮的Click事件过程中。
按Tab键默认缩进4个空格然后输入以下
代码 第2章 从零开始编制
VB应用程序 13 Text1.Text quot欢迎进入
VB殿堂quot ② 为【清除】按钮的单击事件编写
代码。
Text1.Text quotquot ③ 为【结束】按钮的单击事件编写
代码。
End 5运行程序 6保存工程 2.2 对象 2.2.1 对象是什么 对象Object的原意是指物体它是现实世界中事物的抽象表示。
对象在实际生活中随处可见。
在面向对象的程序设计Object Oriented ProgrammingOOP中对象是具有属性和方法能对特定事件做出反应的实体如窗体、文本框、命令按钮等都是对象。
对象是可以分类的。
类Class是同种对象的集合与抽象。
对象是类的具体化是类的实例而类是创建对象实例的模板。
对象一旦建立即可改变其属性。
2.2.2 对象的属性、事件和方法
VB是以对象为基础的程序设计语言。
在
VB中窗体、控件等对象具有自己的属性和方法能对特定事件做出反应。
1. 属性 属性可看作对象的静态特征。
1属性的设置 对象属性的设置有两种方法 ① 在属性窗口直接设置。
② 在程序
代码中通过赋值实现格式如下 对象名.属性 属性值 若对象是当前窗体可省略对象名。
例如 Text1.Text “Hello” 将文本框对象Text1的Text属性设置为“Hello” Caption “欢迎” 将当前窗体的Caption属性设置为“欢迎” 在上面的
代码中单引号是注释引导符它后面的内容是注释。
2对象的命名 Name名称属性是所有对象都具有的属性在属性窗口它位于属性列表框的第一行代表对象的名称。
对象名称主要用于在程序
代码中引用对象。
在一个窗体中每个对第2章 从零开始编制
VB应用程序 14 象的名称必须保证惟一性即不得有重名对象。
对那些有可能在
代码中被引用的对象推荐采用能反映对象类型和功能的名称如frmHello、txtAge、cmdEnd等。
这样做有利于检查错误且可提高可读性。
常用对象类型及前缀见表2.2。
2. 事件 事件是由用户或系统触发可以由对象识别的操作。
当在对象上发生了某个事件时如果要处理这个事件就必须
设计事件处理的步骤。
事件处理的步骤称为事件过程Event Procedure。
VB程序设计的主要任务就是为对象编写事件过程中的程序
代码。
事件过程的语法如下 Private Sub 对象名_事件名参数表 如果是窗体对象则一律用Form_事件名 处理事件的
代码 End Sub 例如在例2.2中单击命令按钮Command2“清除”按钮时将文本框Text1中的内容清空对应的事件过程如下 Private Sub Command2_Click Text1.Text quotquot End Sub 3. 方法 方法是对象所具有的动作或功能。
例如调用窗体的Print方法可以在窗体上显示文字调用窗体的Move方法可以移动窗体的位置。
许多方法可以改变对象本身的属性如用Move方法移动窗体时窗体的Left和Top属性值就会改变。
可用以下格式调用对象的方法 对象名.方法名 若省略对象名则默认为当前窗体。
例如 Form1.Show 显示窗体Form1 如果方法需要参数则用下面的格式调用对象的方法 对象名.方法名 参数表 若有多个参数需用逗号分隔。
例如 Print quot欢迎quot 在当前窗体上显示文字。
Form1.Move 0 0 将窗体Form1移动到屏幕左上角 2.3 用户界面的载体——窗体 2.3.1 窗体的外观设计 窗体的外观是由窗体的属性决定的。
第2章 从零开始编制
VB应用程序 15 1. Caption 标题 Caption属性用于返回或设置窗体标题栏上显示的文字。
注意该属性的默认值与对象的默认名称相同正因为如此初学者最容易将它与Name名称属性混淆。
在
代码中访问窗体的Caption属性其他属性和方法与之相似可用以下几种形式 Form1.Caption quotHelloquot 用窗体对象的名称访问其属性 Me.Caption quotHelloquot Me关键字指当前窗体对象 Caption quotHelloquot 省略对象名称默认为访问当前窗体的属性 Me关键字在编程时经常使用它既可以简化
代码也可以提高程序的可读性。
2. BackColor、ForeColor 背景色和前景色 BackColor属性返回或设置窗体的背景颜色。
ForeColor返回或设置窗体的前景色即显示在窗体中的文字和图形颜色。
大部分可视控件也具有这两个属性。
在属性窗口单击这两个属性右侧的下拉按钮可选择一种颜色。
此外
VB提供了8个颜色常数可在
代码中直接用于颜色设置vbBlack黑色、vbRed红色、vbGreen绿色、vbYellow黄色、vbBlue蓝色、vbMagenta洋红、vbCyan青色和vbWhite白色。
例如 Form1.BackColor vbWhite 设背景色为白色 Me.ForeColor vbBlue 设前景色为蓝色 3. Left、Top、Height、Width 位置和大小 几乎所有可视控件都具有这几个属性。
Left和Top分别表示对象距容器左边界和顶边界的距离它们决定了对象在容器中的位置。
窗体的容器是屏幕控件的容器通常为窗体也可以是框架Frame、图片框PictureBox或选项卡SSTab控件。
Height和Width分别指定对象的高度和宽度。
这四个属性的默认计量单位为缇twip1厘米567缇。
4. ControlBox、MaxButton、MinButton 边框元素 这三个属性决定是否出现窗体的边框元素它们都是逻辑型值。
5. BorderStyle 边框样式 该属性用于设置窗体边框的样式。
该属性在运行时只读。
当BorderStyle设置为除2以外的值时
系统自动将MaxButton和MinBtton属性设置为False。
6. Icon 图标 Icon属性指定窗体处于最小化时显示的图标同时也是控制菜单框的图标。
7. Picture 背景图片 该属性用于设置窗体中要显示的背景图片。
第2章 从零开始编制
VB应用程序 16 8. WindowsState 窗口状态 该属性表示窗体在运行时以什么状态显示。
属性值有 0 - Normal正常窗口状态。
1 - Minmized最小化状态以图标方式显示。
2 - Manmized最大化状态无边框充满整个屏幕。
在
代码中设置该属性时可以使用数值0、1、2也可以使用
VB常数vbNormal、vbMinmized、vbManmized。
例如 Me.WindowState vbMinimized 使窗体最小化 Me.WindowState 0 使窗体恢复为正常状态 显然使用
VB常数可读性更强。
2.3.2 在窗体上显示文字 应用程序经常需要输出信息直接在窗体上显示文本就是输出信息的一种方式。
1. Print方法的初步应用 调用窗体对象的Print方法可以在窗体上输出字符串。
【例2.3】用Print方法显示窗体的当前位置。
1设计界面及设置属性 在窗体上放置一个命令按钮Command1将其Caption属性设为“改变属性值移动窗体”。
将窗体的MaxButton属性设为False窗体最大化或最小化时若通过
代码移动窗体位置将会出错。
窗体其他属性的设置设Caption为“在窗体上显示文字”BackColor为白色ForeColor为蓝色Left和Top均为300单击Font属性右侧的按钮在【字体】对话框中设字体为“黑体”字号12设计界面如图2.11所示。
2编写
代码 程序代码的任务是单击命令按钮和窗体时改变或恢复窗体位置并显示窗体坐标。
在Command1的Click事件中通过改变Left和Top属性使窗体右移、下移各200缇。
在窗体的Click事件中通过改变Left和Top属性使窗体恢复原位。
每次移动窗体以及窗体复位时用Print方法在窗体上显示窗体的当前坐标。
程序运行效果如图2.12所示。
程序
代码如下 Private Sub Command1_Click 命令按钮的单击事件 改变 Left 和 Top 属性值移动窗体 Me.Left Me.Left 200 Me.Top Me.Top 200 Cls 清屏 Print quot 窗体左上角在屏幕上的坐标为quot Print Me.Left quotquot Me.Top Print quot 单击窗体恢复原位。
quot 第2章 从零开始编制
VB应用程序 17 End Sub Private Sub Form_Click 窗体的单击事件 Me.Left 300 恢复窗体初始位置 Me.Top 300 Cls Print quot 窗体左上角在屏幕上的坐标为quot Print Me.Left quotquot Me.Top End Sub 用Print方法在窗体上显示文字的一般语法格式为 对象名.Print 输出项列表 若省略对象名则默认为当前窗体。
“输出项
列表”参数是显示在窗体上的文本。
如果该参数有多个输出项必须用分号或逗号分隔。
其中分号表示各输出项连续输出中间无空格逗号表示各输出项按分区格式输出每个分区宽度为14个字符。
如果省略各参数则输出一个空行。
在
代码中还使用了Cls方法用于清除由Print方法生成的文本或绘图方法生成的图形。
2. Font属性与字体设置 在例2.1、2.2和2.3中均涉及到了窗体或控件的Font字体属性。
在这三个示例中都是通过在属性窗口设置的。
在
代码中设置字体属性与设置其他属性如Caption属性等有所不同。
例如 设当前窗体字体为12磅加粗黑体。
字号以磅为单位 1磅20缇 Me.FontName quot黑体quot Me.FontSize 12 Me.FontBold True 也可以使用另外一种形式即在Font后加圆点。
例如 Me.Font.Name quot隶书quot Text1.Font.Underline True 2.3.3 窗体的加载和卸载 1. 窗体的加载 窗体的加载是指窗体及其所有控件被装入内存但界面尚未显示。
通常在Load事件过程中加入窗体的初始化处理
代码如设置窗体和控件属性的初始值等。
【例2.4】在Load事件中通过
代码为窗体和命令按钮的属性设置初始值实现与例2.3同样的功能。
新建一个工程在窗体上添加一个命令按钮。
将窗体的MaxButton属性设为False该属性运行时只读其他属性均不作设置。
第2章 从零开始编制
VB应用程序 18 双击窗体打开
代码窗口输入以下
代码 Private Sub Form_Load 设置窗体的属性 Me.Caption quot在窗体上显示文字quot Me.FontSize 12 Me.FontName quot黑体quot Me.ForeColor vbBlue Me.BackColor vbWhite Me.Left 300 设置窗体位置的初始坐标 Me.Top 300 Command1.Caption quot改变属性值移动窗体quot End Sub 按钮和窗体单击事件的
代码与例2.3相同。
程序运行效果与图2.12相同。
2. 窗体的卸载 窗体的卸载是指窗体被关闭而从屏幕上消失。
用户单击窗体上的关闭按钮或在
代码中执行Unload语句时即可卸载窗体。
Unload语句的语法如下 Unload 对象 例如 Unload Form1 Unload Me 窗体卸载前依次发生QueryUnload事件和Unload事件。
这两个事件都有一个参数“Cancel”在事件过程中将该参数设为非零值可取消窗体的卸载。
如果需要在窗体卸载时进行一些善后处理如保存数据或文件等可以在这两个事件中提示用户并做出相应的处理。
注意不要将Unload语句和Unload事件混为一谈。
在例2.2的【结束】按钮的单击事件过程中我们曾使用了End语句。
End语句直接结束应用程序的运行不触发QueryUnload和Unload事件。
2.3.4 窗体能识别的
常用事件 1. 鼠标事件 Click事件单击窗体的空白区域或一个无效控件时发生。
DblClick事件双击窗体的空白区域或一个无效控件时发生。
MouseDown事件当用户在对象上按下鼠标键时触发该事件。
MouseUp事件当用户在对象上释放鼠标键时触发该事件 MouseMove事件当用户在对象上移动鼠标时触发该事件。
2. Activate和Deactivate事件 Activate是窗体的激活事件在窗体由非活动窗口变为活动窗口的瞬间发生。
第2章 从零开始编制
VB应用程序 19 Deactivate事件与Activate事件相对在窗体由活动窗口变为非活动窗口的瞬间发生。
3. ReSize事件 当窗体第一次显示或改变窗体的大小时发生该事件。
利用该事件可以在改变窗体的大小时移动控件或调整其大小。
2.3.5 窗体可以使用的常用方法 1. Cls方法 Cls方法用于清除运行时在窗体或图片框中显示的文本或图形。
格式如下 对象.Cls 其中“对象”为窗体或图片框若省略则默认为当前窗体。
窗体中使用Picture属性设置的背景位图和放置在窗体上的控件不受Cls方法影响。
2. Move方法 Move 方法用于移动窗体或控件并可以改变其大小。
格式如下 对象.Move 左边距离上边距离宽度高度 其中 对象可以是窗体以及除菜单以外的所有可视控件若省略对象则默认为当前窗体。
左边距离、上边距离、宽度、高度均为数值以twip为单位。
如果对象是窗体则“左边距离”和“上边距离”以屏幕左边界和上边界为准否则以窗体等容器内部的左边界和上边界为准。
“宽度”和“高度”指定对象的新宽度和新高度。
调用Move方法后将自动改变对象的Left、Top、Width和Height四个属性。
【例2.5】用Move方法移动窗体。
在例2.3的窗体中添加一个命令按钮Command2设其Caption属性为“用Move方法移动窗体”为该按钮的单击事件编写如下
代码 Private Sub Command2_Click Me.Move Me.Left 200 Me.Top 200 使窗体向右、向下各移动200缇 Cls Print quot 窗体左上角在屏幕上的坐标为quot Print Me.Left quotquot Me.Top Print quot 单击窗体恢复原位。
quot End Sub 运行程序后将会看到调用Move方法与改变属性值具有同样的效果。
【例2.6】使控件大小与窗体大小相适应。
新建工程在窗体上添加一个文本框Text1。
为窗体的Resize事件过程编写如下
代码 Private Sub Form_Resize Text1.Move 0 0 Me.ScaleWidth Me.ScaleHeight End Sub 第2章 从零开始编制
VB应用程序 20 说明当窗体大小改变时触发Resize事件在该事件过程中调用文本框控件的Move方法使文本框始终充满整个窗体。
在上述
代码中使用了窗体的两个特殊属性ScaleWidth和ScaleHeight它们分别代表窗体内部绘图区域的宽度和高度。
2.3.6 多窗体应用程序 多窗体应用程序是指一个应用程序中有多个并列的普通窗体每个窗体可以有自己的界面和程序
代码完成不同的功能。
1. 添加新窗体 执行【工程】菜单中的【添加窗体】命令或单击工具栏上的添加窗体按钮打开如图2.13所示的【添加窗体】对话框选择【新建】选项卡中的【窗体】图标并单击【打开】按钮即可在工程中新建一个空白窗体若选择如图2.14所示的【现存】选项卡则可以将一个已经做好的窗体添加到当前工程中。
添加一个已有的现存窗体到当前工程时有两个
问题要注意 1被添加的窗体不能与当前工程内已有的任何窗体同名否则无法添加。
2添加进来的现存窗体实际上是由多个工程共享因此对窗体所做的改变会影响到共享该窗体的所有工程。
2. 设置启动对象 在程序运行过程中首先执行的对象被称为启动对象。
在默认情况下一个应用程序若含有多个窗体则第一个创建的窗体被指定为启动对象即启动窗体。
如果要指定其他窗体为启动窗体可执行【工程】菜单中的【工程属性】命令打开如图2.15所示的【工程属性】对话框在【启动对象】下拉列表框中选择所需窗体并单击【确定】按钮。
启动对象既可以是窗体也可以是Sub Main过程。
如果启动对象是Sub Main过程则程序启动时不加载任何窗体以后由Sub Main过程根据不同情况决定是否加载或加载哪个窗体。
有关Sub Main过程的详细内容将在第8章讨论。
3. 移除窗体 若当前工程中不再需要某个窗体可将其移除不删除磁盘文件。
移除的方法是先在工程资源管理器中选定要移除的窗体然后执行【工程】菜单中的【移除xxx】命令。
4. 窗体的显示与隐藏 调用窗体的Show方法和Hide方法或者通过
代码设置Visible属性可以实现窗体的显示和隐藏。
1Show方法 窗体的Show方法用于显示窗体。
调用格式为 窗体名.Show 模式 拥有者 其中“模式”参数有两种取值0vbModaless默认值为非模式窗体1vbModel第2章 从零开始编制
VB应用程序 21 表示模式窗体。
模式窗体是指该窗体出现后用户必须对其作出响应在关闭该窗体前不能对本程序中的其他窗体进行操作。
非模式窗体则无此限制。
“拥有者”参数用于指定被显示窗体的“父”窗体当“父”窗体最小化或关闭时被显示窗体也将最小化或关闭。
通常将“拥有者”参数设为Me。
例如在窗体Form1的单击事件过程中有如下语句 Form2.Show vbModeless Me 其中Me表示Form1即Form1是Form2的拥有者。
注意如果调用Show方法时指定的被显示窗体没有加载
VB将自动加载该窗体。
2Hide方法 Hide方法用于隐藏窗体。
调用格式为 窗体名.Hide 与Unload语句不同Hide方法只是将窗体暂时隐藏并未卸载。
3Visible属性 在设计时通过属性窗口设置Visible属性用于指定窗体的可见性True为可见False为不可见。
在
代码中将该属性设为True与调用不带参数的Show方法效果相同而将该属性设为False等同于调用Hide方法。
Visible属性也是各种可视控件的公有属性。
下面通过一个简单的示例说明多窗体程序的创建。
【例2.7】在程序启动窗体上单击“关于”按钮通过另一个窗体显示版本信息。
新建工程将窗体Form1改名为frmMain设其Caption属性为“主窗体”。
在窗体上添加一个命令按钮名称为cmdAbout设Caption属性为“关于”。
添加一个新窗体设名称为frmAboutCaption属性为“关于”BorderStyle属性为3在frmAbout窗体上添加一个标签设Caption为“多窗体示例 版本1.0”添加一个命令按钮名称为cmdOk设Caption为“确定”。
运行结果如图2.16所示。
frmMain窗体的“关于”按钮单击事件
代码如下 Private Sub cmdAbout_Click frmAbout.Show 1 显示为模式窗体 End Sub frmAbout窗体的“确定”按钮单击事件
代码如下 Private Sub cmdOk_Click 若仅卸载本窗体则不应使用End语句否则将结束程序 Unload Me End Sub 一个实用的应用程序大多含有多个窗体本节只是对多窗体应用程序的初步介绍。
2.4 让用户下达命令的控件——命令按钮 命令按钮简称按钮。
在应用程序中命令按钮是最常用的控件。
使用命令按钮时通第2章 从零开始编制
VB应用程序 22 常在它的Click事件中编写一段程序当用户选中这个按钮时就会启动这段程序执行某一特定的功能。
2.4.1 焦点 在介绍命令按钮的功能之前先来了解一下“焦点”的概念。
“焦点”是可视化程序设计中频繁使用的一个术语。
所谓焦点是指对象接收鼠标操作或键盘输入的能力。
当对象具有焦点时可以接收用户的输入。
在Windows平台下同一时刻只有一个窗口、窗体或控件具有这种能力。
例如在含有多个文本框的窗体上只有具有焦点的文本框才能接收用户输入的文本。
具有焦点的对象通常会以突出显示的标题或标题栏来表示。
命令按钮可以通过SetFocus方法将焦点定位到自身。
此外在程序运行时还可以使用Tab键使焦点在各个对象之间切换。
具有焦点的命令按钮的标题周围具有虚线边框。
2.4.2 命令按钮的常用属性 1. Caption属性与访问键 该属性设置显示在按钮上的文字标题。
设置Caption属性时如果某个字母前面加上“amp”则在程序运行时标题中的该字母即带有下划线这一字母就成为访问键。
所谓访问键是指与ALT键同时按下的键用来打开菜单、执行命令或选择对象。
当用户按下Alt访问键时其作用与通过鼠标单击该按钮相同。
例如在命令按钮中字母“O”就是访问键该按钮的Caption属性为“确定ampO.