VisualBasic對象使用二

字號:

創(chuàng)建對象
     創(chuàng)建對象的最簡單方法是在“工具箱”中雙擊控件。但是,對 Visual Basic 中的所有可用對象以及來自其它應用程序的所有可用對象,要想充分體現(xiàn)它們的優(yōu)勢,可在運行時用 Visual Basic 的可編程性能創(chuàng)立對象。
     1.用對象變量創(chuàng)建對象引用
     2.用類模塊“從零開始”創(chuàng)建自己的對象
     3.用集合對象創(chuàng)建自己的集合
     詳細信息 在其它章節(jié)將會介紹如何訪問對象。例如,在第十章“用部件編程”中將討論 CreateObject 和 GetObject 函數(shù)。
     使用對象變量
     除了存儲值以外,變量可引用對象。如同給變量賦值一樣,基于下列相同理由,可把對象賦給變量:
     1.變量名往往比變量所含的值(或者,在此情況下,所含值就是它們引用的對象)短而好記。
     2.在運行代碼時,為了引用其它對象,應改變變量。
     3.引用包含對象的變量比反復引用對象本身有更高的效率。
    使用對象變量與使用常規(guī)變量一樣,只不過多了把對象賦予變量這一步:
     4.首先聲明變量:
     Dim variable As class
     5.然后把對象賦予變量:
     Set variable = object
     聲明對象變量
     聲明對象變量的方法和聲明其它變量一樣,要用 Dim、ReDim、Static、Private和 Public。僅有的不同在于可選的 New 關(guān)鍵字和 Class 參數(shù),本章后面將會對 New 關(guān)鍵字和 Class 參數(shù)都作介紹。語法是:
     {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
     運行應用程序并單擊窗體。文本框的 Text 屬性將變成 "Hello"。
     一般對象變量可在多種特定對象類型中引用其中一種。例如,一般窗體變量可引用應用程序中的任何窗體;一般控件變量可引用應用程序中任何窗體上的任何控件。請看一例,打開新的工程并在窗體中按任意順序放置若干 Frame、Label 和 CommandButton 控件。將下列代碼添加到窗體中:
     Private Sub Form_Click ()
     Dim anyControl As Control
     Set anyControl = Form1.Controls (3)
     anyControl.Caption = "Hello"
     End Sub
     運行程序并單擊窗體。剛才放入窗體中的第三個控件的標題將變成"Hello"。