[VB6] Collection 實例演出

摘要:[VB6] Collection 實例演出

Collection 的用法
Collection是我們在使用類時最常用到的對象。一個Collection對象代表一組相關的項目,雖然它的成員並不被強制要求是同一類型的的,但
請記住,這通常並不能給我們帶來額外的方便,相反,我們通常是用來收集同一類型的數據。

建立集合的方法和建立其它對象一樣,如:
Dim col As New Collection

集合建立後,可以使用Add方法添加成員,用Remove方法刪除成員,用Item方法從集合中返回特定成員。

Private Sub Command1_Click()
    Dim col As New Collection
    Dim i as integer
    Dim ct As Control
    '收集
    For Each ct In Me.Controls
        If Left(ct.Name, 7) = "Text1" Then col.Add ct
    Next ct
    '移除
    For i = col.Count To 1 Step -1
        MsgBox "下面刪除成員" & col.Item(i).Name
        col.Remove i
    Next i
End Sub

上面的代碼先將窗體上所有的TextBox加入到集合中,然後再刪除掉。Count屬性返回集合的成員數量,Remove方法後面的參數是集合成員的索引號。成員的索引號通常是按照加入的順序自然編號,從1開始,但可以在加入時使用Add方法的參數進行改變。Add方法的完整語法是:
object.Add item[, key][, before][, after]
item 必需的。任意類型的表達式,指定要添加到集合中的成員。
key 可選的。唯一字符串表達式,指定可以使用的鍵字符串,代替位置索引來訪問集合中的成員。
before/after 可選的。表達式,指定集合中的相對位置。
下面語句向集合增加一個對象Text1,並定義該成員的關鍵字為tx1。
col.Add Text1, "tx1"
然後,下面兩句都可以向集合中增加一個Text2,並把它放在成員Text1的前面。
col.Add Text2, , col.Count
col.Add Text2, , "tx1"
第一句中,因為只有一個成員,所以col.Count也是索引號

 

Collection除了收集之外也能將其實體化,接下來再看這下面這一例,

Option Explicit
Public form_count As Integer
Public a As New Collection
'在表單 (Form1) 中:
Private Sub Command2_Click()
    If form_count = 0 Then form_count = 1
    form_count = form_count + 1
    a.Add New Form1, "form" & form_count
    a("form" & form_count).Show
    a("form" & form_count).Caption = "form" & form_count
End Sub

再看一例會更清楚,這是利用class來演示資料傳輸及收集。

Family
|
-------- > Childred ------ >child

Family class與 Child class的關係是一對多的關係。為了簡化class之間的關係,我們增加了一個Children class,Children類是Child

class的集合,因此 Family class與Children class直接關聯,形成一對一的關係。
簡單的講也就是Family class繼承了Childred class,而Childred class繼承了child class

 

in Child class
in Children class
in Family class
in form1

範例下載Class Collection.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo