MSDN还是很有用的,下面都是MSDN中来的。
Visual Basic 2008 中的 Control .ControlCollection 类取代了 Visual Basic 6.0 的 Controls 集合。
在 Visual Basic 6.0 中,Controls 集合是表示窗体或容器控件上的控件的元素的集合。
Add 方法
在 Visual Basic 6.0 中,Controls 集合的 Add 方法是后期绑定的;控件是通过指定 Control 类作为参数在 Add 方法中创建的。
在 Visual Basic 2008 中,Control .ControlCollection 类的 Add 方法要求先使用 New 关键字创建控件,再将控件添加到集合中。
Visual Basic 6.0 Controls 集合的 Remove 方法只能用于使用 Add 方法添加的控件;而 Visual Basic 2008 的 Control .ControlCollection 类则没有此限制。
在 Visual Basic 6.0 中,Timer 和 Menu 控件是 Controls 集合的成员。在 Visual Basic 2008 中,这些控件由 Timer 以及 MainMenu 或 ContextMenu 组件取代;组件不是 Control .ControlCollection 类的成员。
Visual Basic 6.0 的 Controls 集合包含作为容器控件子级的控件(如位于 Frame 控件上的控件);而 Visual Basic 2008 的 Control .ControlCollection 类不是这样。要循环访问窗体上的所有控件,则必须递归循环访问每个容器控件的 Controls 类。
下面的示例说明 Visual Basic 6.0 和 Visual Basic 2008 在编码方法上的不同之处。
下面的代码说明 Visual Basic 6.0 的 Controls 集合与 Visual Basic 2008 的 Control .ControlCollection 类之间的差异。
Private Sub Command1_Click() End Sub | |
Visual Basic |
|
' Visual Basic 2008 End Sub |
下面的代码展示的函数循环访问窗体上的所有控件,然后清除所有 CheckBox 控件。本示例假定 CheckBox 控件位于 GroupBox 或 Panel 控件上,而不是窗体上。在 Visual Basic 2008 示例中,由于窗体的 Controls 集合仅包含直接位于窗体上的控件,因此对于具有子级的任何控件,该函数递归调用自身。
Private Sub ClearChecks() End Sub | |
Visual Basic |
|
' Visual Basic 2008 Private Sub ClearChecks(ByVal Container As Control) End Sub |
由于 Visual Basic 6.0 和 Visual Basic 2008 的 Controls 集合之间存在差异,因此对 Add 方法的调用不进行升级。必须添加代码才能使用 Add 方法重新创建应用程序的这一行为。
参考
Form .ControlCollection
发送反馈意见,就此主题向 Microsoft 发送反馈意见。