創(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"。
創(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"。