集合提供了跟踪对象很有用的方法。与数组不同,当增加和删除集合对象的成员时,它的大小不会改变。
例如,若要跟踪拖放到某一特定控件中的每个控件,并且不允许多次拖放任何控件。通过对集合进行管理可做到这点,该集合包含每个被拖放控件的引用:
Private Sub List1_DragDrop(Source As VB.Control, _ X As Single, Y As Single) Dim vnt As Variant Static colDroppedControls As New Collection For Each vnt In colDroppedControls '
如果集合中有被拖放的控件,则'
它已经被拖放到这儿一次。If vnt Is Source Then
Beep
Exit Sub
End If
Next
'
保存被拖放控件的引用。colDroppedControls.Add Source
'
在列表框中添加控件名。List1.AddItem Source.Name
End Sub
该示例使用 Is 操作符将 colDroppedControls
集合中的对象引用和包含被拖放控件引用的事件参数进行比较。Is 操作符可用来测试 Visual Basic 对象引用的一致性:如果两个不同引用的比较结果为同一对象,Is 操作符将返回 True。
该示例还使用集合对象中的 Add 方法将对被拖放控件的引用放到集合中。
与数组不同,集合本身也是对象。变量 colDroppedControls
被声明为 As New,因此在代码中变量第一次被引用时将创建该集合类的实例。由于变量被声明为 Static,因此当事件过程结束时,该集合对象不会消失。
详细信息 请参阅《语言参考》的“Is 操作符”。
本章后面的“Visual Basic 集合对象”中将讨论 Collection 对象的属性和方法。
有关上述代码与需要使用数组的代码的比较,请参阅本章前面的“创建对象数组”。
要了解如何在自己集合类中包括集合对象,建立更强健的集合,请参阅本章后面的“创建自己的集合类”。
本章前面的“Visual Basic 中的对象”讨论如何建立和破坏对象。