使用对象初步

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 对所有方法提供的语法和参数,请参阅语言参考。