VB编程基础教程15-使用对象
- 爱奇艺限时半价 | 30+正版软件打折 | PD 虚拟机 7 折 | RackNerd 黑五 | 京东 Plus ¥69
在 visual basic中创建应用程序之际,也就是和对象打交道之时了。可以使用 visual basic 提供的对象— 比如控件、窗体和数据访问对象。也可以在一个 visual basic 应用程序内部控制另一个应用程序对象。甚至还可建立自己的对象,定义它们的属性和方法。
对象是什么
对象是代码和数据的组合,可以作为一个单位来处理。对象可以是应用程序的一部分,比如可以是控件或窗体。整个应用程序也是一个对象。下表列出了在 visual basic 中可能用到的几种类型的对象:
示例 描述
命令按钮 窗体上的控件,象命令按钮和框架,它们都是对象。
窗体 visual basic 工程中的每一个窗体都是独立的对象。
数据库 数据库是对象,并且还包含其他对象,如字段、索引等。
图表 microsoft excel 中的图表是对象。
对象从何而来
visual basic 中的每个对象都是用类定义的。用饼干模子和饼干之间的关系作比,就会明白对象和它的类之间的关系。饼干模子是类。它确定了每块饼干的特征,比如大小和形状。用类创建对象。对象就是饼干。
下面再用两个例子进一步说明 visual basic 中类与对象之间的关系。
在 visual basic 的“工具箱”上,控件代表类。直到在窗体上画出这些被称作控件的对象为止,它们实际上并不存在。在创建控件之时也就是在复制控件类,或建立控件类的实例。这个类实例就是应用程序中引用的对象。
在设计时操作的窗体是类。在运行时,visual basic 建立窗体的类实例。
“属性”窗口显示 visual basic 应用程序中的对象的类和 name 属性
把对象看作是类的原原本本的复制品,从而建立所有对象。一旦它们以单个对象的形式存在,属性就可改变。例如,如果在窗体上画了三个命令按钮,则每个命令按钮对象都是命令按钮类的实例。 每个对象都具有一组由类定义的公共的特征和功能(属性、方法和事件)。但是,每个对象都有自己的名字,都能分别设置成有效或无效,都能放在窗体的不同位置,等等。
为简单起见,本章之外的大部分内容将不过多引用对象的类。例如,只要记住术语“listbox 控件”意味着“列表框类的一个实例”。
用对象能做什么
对象可提供现成代码,省却书写麻烦。例如,可以自己创建打开文件和保存文件的对话框,但实际上大可不必。取而代之的是利用 visual basic 提供的 commondialog 控件(一个对象)。虽然用户也能撰写日程管理和资源管理的程序,但也大可不必。在此亦可使用 microsoft project 提供的 calendar、resources 和 task 对象。
visual basic 可以组合来自其它来源的对象
visual basic 提供了把来自不同资源的对象组合起来的工具。现在可把 visual basic 的各种强有力的特性以及支持自动化(先前以 ole 自动化闻名)的应用程序结合起来,建立定制的解决方法。自动化是部件对象模式 (com) 的一个特性,它是应用程序使用的工业标准,用来陈列对象以开发工具和其它应用程序。
可把 visual basic 内部的控件结合在一起,也可使用其它应用程序提供的对象。考虑把下列对象放入 visual basic 窗体:
microsoft excel chart 对象
microsoft excel worksheet 对象
microsoft word document 对象
可用这些对象建立支票簿应用程序。由于不必书写代码,重建已由 microsoft excel 和 word 等对象提供的功能,因而节省很多时间。
使用对象初步
visual basic 对象支持属性、方法和事件。在 visual basic 中,称对象的数据(设置和属性)为属性,称各种可在对象上操作的过程为方法。事件是可被对象识别的动作,例如单击鼠标和按下键盘键,还可编写代码来响应事件。
改变对象的属性就可改变对象的特性。用收音机打比方,收音机的一个属性是音量。用 visual basic 的行话来说,就是收音机有个“volume”属性,改变其值就可调节音量大小。假定收音机的音量值可设置在 0 到 10 之间。 如果能够通过 visual basic 控制收音机,则可在一个过程中写代码,把“volume”属性值从 3 提高到 5,使声音更响一些:
radio.volume = 5
除了属性以外,对象还有方法。方法和属性都是对象的一部分。一般说来,方法就是要执行的动作,而属性就是要设置或检索的特性。以拨号打电话为例。可以说电话有一个“拨号”方法,拨一个 7 位电话号码的语法就是:
phone.dial 5551111
对象还有事件。当对象的某方面有变动时就触发了事件。例如,收音机可能有“volumechange”事件。电话可能有“ring”事件,等等。
用属性控制对象
个别属性随着可以设置和取得它们的值的时间不同而不同。有的属性可在设计时设置。可在“属性”窗口设置这些属性的值而无需编写任何代码。而有的属性在设计时是不可用的;因此,这些属性只有通过代码在运行时设置。
在运行时可以设置并可获得值的属性叫做读写属性。在运行时只能读取的属性叫做只读属性。
设置属性值
在想改变对象的外观或特性时设置属性的值。例如,通过改变 textbox 控件的 text 属性,就可以改变文本框的内容。
用下列语法设置属性值:
object.property = expression
下面是设置属性的语句:
text1.top = 200 ‘ 设置 top 属性为 200 缇。
text1.visible = true ’ 显示文本框。
text1.text = "hello" ‘ 在文本框中显示 "hello"。
读取属性值
想要在代码执行附加动作(例如给另一个对象赋值)之前得知对象的状态,这时就要读取属性值。例如,在运行代码之前能够返回 textbox 控件的 text 属性值,以确定文本框的内容,这里,代码可能改变值。
在大多数情况下可以用以下语法获得属性值:
variable = object.property
属性值可以作为较复杂的表达式的一部分,而不必将属性赋予变量。下面的代码计算控件数组中的一个新成员的 top 属性,它等于前一个成员的 top 属性加上 400。
private sub cmdadd_click ()
’ [语句]
optbutton (n).top = optbutton (n-1).top + 400
‘ [语句]
end sub
提示 如果不只一次使用一个属性值,而且将这个值存储到一个变量中,则代码执行起来会更快。
用方法来执行动作
方法能够影响属性值。例如在用收音机打比方的例子中,setvolume 方法改变了 volume 属性。与此类似,在 visual basic 中列表框具有 list 属性,而 clear 和 additem 方法可以改变这一属性。
在代码中使用方法
在代码中使用方法时如何书写语句,这取决于该方法要求多少参数,以及是否返回一个值。如果方法不要求参数,则用以下语法编写代码:
object.method
下例中,用 refresh 方法重画图片框:
picture1.refresh ’ 强迫重画控件。
有些方法,如上面的 refresh ,既无参数又不返回值。
如果方法要用多个参数,就用逗号将它们分开。例如, circle 方法就要用代表窗体上圆的位置、半径和颜色的参数:
‘ 画一个半径为 1200 缇的蓝色园。
form1.circle (1600, 1800), 1200, vbblue
如果要保存方法的返回值,就必须把参数用括号括起来。例如, getdata 方法从剪贴板返回一张图片:
picture = clipboard.getdata (vbcfbitmap)
如果没有返回值,则参数不会出现在括号中。例如,additem 方法没有返回值。
list1.additem "yourname" ’ 在列表框中添加 "yourname"。
详细信息 关于 visual basic 对所有方法提供的语法和参数,请参阅语言参考
/ 关注 “异次元软件世界” 微信公众号,获取最新软件推送 /
如本文“对您有用”,欢迎随意打赏异次元,让我们坚持创作!
赞赏一杯咖啡