首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 复习指导 >

VB的灵魂之对象使用(2)(1)

2009-06-29 
本文为您介绍如何在VB中创建对象。

  创建对象

  创建对象的最简单方法是在“工具箱”中双击控件。但是,对 Visual Basic 中的所有可用对象以及来自其它应用程序的所有可用对象,要想充分体现它们的优势,可在运行时用 Visual Basic 的可编程性能创立对象。

  1.用对象变量创建对象引用

  2.用类模块“从零开始”创建自己的对象

  3.用集合对象创建自己的集合

  详细信息 在其它章节将会介绍如何访问对象。例如,在第十章“用部件编程”中将讨论 CreateObject 和 GetObject 函数。

  使用对象变量

  除了存储值以外,变量可引用对象。如同给变量赋值一样,基于下列相同理由,可把对象赋给变量:

  1.变量名往往比变量所含的值(或者,在此情况下,所含值就是它们引用的对象)短而好记。

  2.在运行代码时,为了引用其它对象,应改变变量。

  3.引用包含对象的变量比反复引用对象本身有更高的效率。

  使用对象变量与使用常规变量一样,只不过多了把对象赋予变量这一步:

  4.首先声明变量:

  Dim variable As class

  5.然后把对象赋予变量:

  Set variable = object

  声明对象变量

  声明对象变量的方法和声明其它变量一样,要用 Dim、ReDim、Static、Private和 Public。仅有的不同在于可选的 New 关键字和 Class 参数,本章后面将会对 New 关键字和 Class 参数都作介绍。语法是:

  {Dim | ReDim | Static | Private | Public} variable As [New] class

  例如,可以声明一个对象变量,它引用应用程序中的被称做 frmMain 的窗体:

  Dim FormVar As New frmMain'声明一个类型为 frmMain

  '的对象变量。

  也可以声明一个对象变量,它引用应用程序中的任何窗体:

  Dim anyForm As Form '一般窗体变量。

  类似地,可以声明一个对象变量,它能够引用应用程序中的任何文本框:

  Dim anyText As TextBox'可以引用任何文本框

  '(但只能是一个文本框)。

  还可以声明一个对象变量,它能够引用任何类型的控件:

  Dim anyControl As Control '一般控件变量。

  注意,可以声明一个引用应用程序中的指定窗体的窗体变量,但不能声引用特定控件的控件变量。可以声明能够引用控件的特定类型(如 TextBox或列表框)的控件变量,但不是引用那种类型的一个特定控件(如 txtEntry 或List1)。但是,可把特定的控件赋予那种类型的变量。例如,对于具有列表框 lstSample 的窗体可以这样编码:

  Dim objDemo As ListBox

  Set objDemo = lstSample

  赋值对象变量

  用 Set 语句将对象赋予对象变量:

  Set variable = object

  无论何时,只要希望对象变量引用对象,就可使用 Set 语句。

  有时可用对象变量,尤其可用控件变量直接缩短要键入的代码。例如,原来的代码是这样的:

  If frmAccountDisplay!txtAccountBalance.Text < 0 Then

  frmAccountDisplay!txtAccountBalance.BackColor = 0

  frmAccountDisplay!txtAccountBalance.ForeColor = 255

  End If

  如果使用控件变量,程序就可显著缩短:

  Dim Bal As TextBox

  Set Bal = frmAccountDisplay!txtAccountBalance

  If Bal.Text < 0 Then

  Bal.BackColor = 0

  Bal.ForeColor = 255

  End If

  特定对象类型与一般对象类型

  特定的对象变量必须引用特定类型的对象或类。特定的窗体变量只能引用应用程序中的一个窗体(尽管可在该窗体的诸多实例中引用其中之一)。与此相似,特定的控件变量只能引用应用程序中的特定类型的控件,比如TextBox 或者列表框。请看一例,打开新的工程,在窗体中放置一文本框。将下列代码添加到窗体中:

  Private Sub Form_Click ()

  Dim anyText As TextBox

  Set anyText = Text1

  anyText.Text = "Hello"

  End Sub

热点排行