用戶可能經常對一個對象進行一系列的多種操作。例如,可能需要對一個對象設置幾種屬性,可采用如下多種方法:
1.使用多種表述
如下代碼:
Private Sub InitializeComponet() Button1.Text="OK" Button1.Visible=True Button1.Top=200 Button1.Left=5000 Button1.Enabled=True End sub 也可以更容易的使用With...End With提高代碼的效率,代碼如下: Private Sub InitializeComponent() With Button1 .Text="OK" .visible=True .Top=200 .Left=5000 .Enalbed=True End With End Sub 可以在With...End With模塊中使用嵌套,如下代碼所示: Imports color=system.Drawing.Color Sub SetupForm(0 Dim frmAnotherForm As New form1() With frmAnotherForm .show() 'show the new form .Top=250 .Left=250 .ForeColor=Color.LightBlue .BackColor=Color.DarkBlue With frmAnotherForm.texbox1 .BackColor=Color.Thistle 'change the background .Text="Some Text" 'place some text in the textbox End With End With End Sub
2.把窗體看作對象
窗體是描述用戶的應用程序和用戶接口的類,當窗體顯示以後,一個窗體類的對象就被建立並且象其他任何的對象一樣,用戶可以給窗體加入一個自定義的屬性和方法,並且從其他的類訪問這些屬性和方法,要給一個窗體加入一個方法,只需要在代碼中加入一個聲明為Public的過程就可以了,如下代碼:
'Custom method on Form1
Public Sub PrintMyJob()
<statements>
End Sub
要給一個窗體加入一個數據成員,只需要把一個公有的變量在窗台體模塊中聲明就可以了:
Public IDNumber As Integer
當引用一個窗體的名稱,其實確切地講,引用的是這個窗體屬於的類,而不是窗體這個對象本身,一個經常容易犯的錯誤就是企圖不使用對象變量而直接引用一個類的屬性,例如:
Form1.PrintMyJob 'Error,this will not work unless you created form1
為了訪問一個不同的窗體上的方法需要先建立一個那種窗體類的實例,並把它賦給一個對象變量,如下面的例子:
Dim frmForm1 as New Form1
frmForm1.PrintMyJob
注意到上面這個例子建立了一個新的窗體對象,而且沒有顯示它。如果用戶需要使用一個窗體對象的方法的話,沒有必要一定要把這個窗體顯示出來。如果需要顯示一個新的窗體,只需用如下代碼即可:
frmForm1.show
對於一個窗體類的實例而言,它的屬性值是確定的,用戶可以很容易就能訪問當前的窗體的屬性值,但如果想訪問任意一個窗體的話,情況就會復雜一點。例如:假如有這樣一個應用程序,它有一個主窗體名為Form1,而且有兩個子窗體分別名為form2和form3,它們之間需要相互得到一些對方的信息。一個解決方法就是把需要在主窗體中聲明Public Shared對象變量來對其他的窗體進行引用。Public Shared對象變量是在所有實例中共享相同值的類成員。
下面的例子說明了怎樣在form1對象中設置和使用Public Shared對象變量,如果有很多窗體的話,可以建立一個Public Shared對象變量窗體的集合。
用戶可以通過以下方法建立一個公有的共享的對象變量:
(1)把應用程序需要使用的窗體都設計好,確認在其他的窗體需要訪問的控件都設置為了Public,例如:
Public txtMyTextBox As System.WinForms.TextBox
(2)在主窗體中聲明Public Shared變量,並讓它能夠存儲對其他窗體的引用,例如:
Public Shared frmForm2 As form2
Public Shared frmForm3 As form3
(3)建立其他的窗體類的實例,並且把對象的引用設置為Public Shared變量:
form1.frmForm2=New Form2 'create form2 and save reference
form1.frmForm3=New Form3 'create form3 and save reference
(4)在合適的時候顯示窗體,例如:
form1.frmform2.Show()
form1.frmform3.Show()
(5)現在就可以象訪問主窗體的屬性一樣,訪問其他窗體的數據,例如:
Me.texSomeTextBox.Text=form1.frmForm3.txtMyTextBox.text
form1.frmForm3.BackColor=system.Drawing.Color.DarkGray