2012-02-01 68 views
3

我動態加載和卸載窗體上的命令按鈕數組。vb6 - 如何找到控制數組中的最大元素索引?

我可以這樣做:

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

但我並不總是有20個元素。有沒有辦法循環每一個,直到它結束?

我知道我可以使用全局變量並跟蹤值,但我試圖避免這種情況。

任何建議,請...

回答

8

使用UBound()它返回的 數組指定維度的最高可用下標。

Dim UnloadIndex As Integer 
For UnloadIndex = LBound(frmMain.cmdAction) To UBound(frmMain.cmdAction) 
    Unload frmMain.cmdAction(UnloadIndex) 
Next 
+0

謝謝你。我還需要保持第一個按鈕。所以我決定從1到UBound ......謝謝你+1快速回復。 – itsols 2012-02-01 04:53:41

+1

+1,雖然你已經鏈接到VB.Net文檔。這裏是'Ubound'的VB6主題http://msdn.microsoft.com/en-us/library/aa263396(v=vs.60).aspx – MarkJ 2012-02-01 15:39:38

5

如果他們不連續的,你也可以這樣做:

Dim Control as CommandButton 
For Each Control in frmMain.cmdAction 
    If Control.Index > 0 Then 
    Unload Control 
    End If 
Next 
+0

+1,用於引起人們注意經常被忽視的事實,即在那裏可以有差距。也可以從任意下限開始。 – tcarvin 2012-02-01 21:27:52

+0

+1爲該想法:) – itsols 2012-02-03 13:15:01

0
Dim UnloadIndex As Integer 
For UnloadIndex = LBound(frmMain.cmdAction.LBound) To UBound(frmMain.cmdAction.UBound) 
    Unload frmMain.cmdAction(UnloadIndex) 
Next 

我發現,接受答案的方式給出一個編譯錯誤

預期陣列

使用do t表示法替代了我。

相關問題