3

フォーム上のコマンドボタンの配列を動的にロードおよびアンロードしています。

私がすることができます:

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

しかし、私は常に20の要素を持っているわけではありません。それが最後に達するまでそれぞれをループする方法はありますか?

グローバル変数を使用して値を追跡できることはわかっていますが、これを回避しようとしています。

何か提案をお願いします...

4

3 に答える 3

8

UBound()配列の指定された次元で使用可能な最大の添え字を返すこれを使用します。

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 に答える