VisualBasic對(duì)象使用二

字號(hào):

創(chuàng)建對(duì)象
     創(chuàng)建對(duì)象的最簡(jiǎn)單方法是在“工具箱”中雙擊控件。但是,對(duì) Visual Basic 中的所有可用對(duì)象以及來(lái)自其它應(yīng)用程序的所有可用對(duì)象,要想充分體現(xiàn)它們的優(yōu)勢(shì),可在運(yùn)行時(shí)用 Visual Basic 的可編程性能創(chuàng)立對(duì)象。
     1.用對(duì)象變量創(chuàng)建對(duì)象引用
     2.用類模塊“從零開始”創(chuàng)建自己的對(duì)象
     3.用集合對(duì)象創(chuàng)建自己的集合
     詳細(xì)信息 在其它章節(jié)將會(huì)介紹如何訪問(wèn)對(duì)象。例如,在第十章“用部件編程”中將討論 CreateObject 和 GetObject 函數(shù)。
     使用對(duì)象變量
     除了存儲(chǔ)值以外,變量可引用對(duì)象。如同給變量賦值一樣,基于下列相同理由,可把對(duì)象賦給變量:
     1.變量名往往比變量所含的值(或者,在此情況下,所含值就是它們引用的對(duì)象)短而好記。
     2.在運(yùn)行代碼時(shí),為了引用其它對(duì)象,應(yīng)改變變量。
     3.引用包含對(duì)象的變量比反復(fù)引用對(duì)象本身有更高的效率。
    使用對(duì)象變量與使用常規(guī)變量一樣,只不過(guò)多了把對(duì)象賦予變量這一步:
     4.首先聲明變量:
     Dim variable As class
     5.然后把對(duì)象賦予變量:
     Set variable = object
     聲明對(duì)象變量
     聲明對(duì)象變量的方法和聲明其它變量一樣,要用 Dim、ReDim、Static、Private和 Public。僅有的不同在于可選的 New 關(guān)鍵字和 Class 參數(shù),本章后面將會(huì)對(duì) New 關(guān)鍵字和 Class 參數(shù)都作介紹。語(yǔ)法是:
     {Dim | ReDim | Static | Private | Public} variable As [New] class
     例如,可以聲明一個(gè)對(duì)象變量,它引用應(yīng)用程序中的被稱做 frmMain 的窗體:
     Dim FormVar As New frmMain    '聲明一個(gè)類型為 frmMain
                    '的對(duì)象變量。
     也可以聲明一個(gè)對(duì)象變量,它引用應(yīng)用程序中的任何窗體:
     Dim anyForm As Form       '一般窗體變量。
     類似地,可以聲明一個(gè)對(duì)象變量,它能夠引用應(yīng)用程序中的任何文本框:
     Dim anyText As TextBox      '可以引用任何文本框
                    '(但只能是一個(gè)文本框)。
     還可以聲明一個(gè)對(duì)象變量,它能夠引用任何類型的控件:
     Dim anyControl As Control     '一般控件變量。
     注意,可以聲明一個(gè)引用應(yīng)用程序中的指定窗體的窗體變量,但不能聲引用特定控件的控件變量。可以聲明能夠引用控件的特定類型(如 TextBox或列表框)的控件變量,但不是引用那種類型的一個(gè)特定控件(如 txtEntry 或List1)。但是,可把特定的控件賦予那種類型的變量。例如,對(duì)于具有列表框 lstSample 的窗體可以這樣編碼:
     Dim objDemo As ListBox
     Set objDemo = lstSample
     賦值對(duì)象變量
     用 Set 語(yǔ)句將對(duì)象賦予對(duì)象變量:
     Set variable = object
     無(wú)論何時(shí),只要希望對(duì)象變量引用對(duì)象,就可使用 Set 語(yǔ)句。
     有時(shí)可用對(duì)象變量,尤其可用控件變量直接縮短要鍵入的代碼。例如,原來(lái)的代碼是這樣的:
     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
     特定對(duì)象類型與一般對(duì)象類型
     特定的對(duì)象變量必須引用特定類型的對(duì)象或類。特定的窗體變量只能引用應(yīng)用程序中的一個(gè)窗體(盡管可在該窗體的諸多實(shí)例中引用其中之一)。與此相似,特定的控件變量只能引用應(yīng)用程序中的特定類型的控件,比如TextBox 或者列表框。請(qǐng)看一例,打開新的工程,在窗體中放置一文本框。將下列代碼添加到窗體中:
     Private Sub Form_Click ()
     Dim anyText As TextBox
     Set anyText = Text1
     anyText.Text = "Hello"
     End Sub
     運(yùn)行應(yīng)用程序并單擊窗體。文本框的 Text 屬性將變成 "Hello"。
     一般對(duì)象變量可在多種特定對(duì)象類型中引用其中一種。例如,一般窗體變量可引用應(yīng)用程序中的任何窗體;一般控件變量可引用應(yīng)用程序中任何窗體上的任何控件。請(qǐng)看一例,打開新的工程并在窗體中按任意順序放置若干 Frame、Label 和 CommandButton 控件。將下列代碼添加到窗體中:
     Private Sub Form_Click ()
     Dim anyControl As Control
     Set anyControl = Form1.Controls (3)
     anyControl.Caption = "Hello"
     End Sub
     運(yùn)行程序并單擊窗體。剛才放入窗體中的第三個(gè)控件的標(biāo)題將變成"Hello"。