3

我正在动态加载和卸载表单上的一组命令按钮。

我可以做这个:

    Dim UnloadIndex As Integer
    For UnloadIndex = 1 To 20
        Unload frmMain.cmdAction(UnloadIndex)
    Next

但我并不总是有 20 个元素。有没有办法循环遍历每一个直到它到达终点?

我知道我可以使用全局变量并跟踪该值,但我试图避免这种情况。

有什么建议请...

4

3 回答 3

8

使用UBound()which 返回数组指定维度的最高可用下标。

Dim UnloadIndex As Integer 
For UnloadIndex = LBound(frmMain.cmdAction) To UBound(frmMain.cmdAction)
    Unload frmMain.cmdAction(UnloadIndex) 
Next 
于 2012-02-01T04:50:03.180 回答
5

如果它们不是连续的,你也可以这样做:

Dim Control as CommandButton
For Each Control in frmMain.cmdAction
  If Control.Index > 0 Then
    Unload Control
  End If
Next
于 2012-02-01T09:11:24.503 回答
1
    Dim UnloadIndex As Integer 
For UnloadIndex = LBound(frmMain.cmdAction.LBound) To UBound(frmMain.cmdAction.UBound)
    Unload frmMain.cmdAction(UnloadIndex) 
Next

我发现接受的答案方式给出了编译错误

预期数组

使用点符号代替对我有用。

于 2017-03-03T08:33:25.547 回答