Hej Du kan använda en ForSats Dett är snyggare att använda en for each sats:Array
Om jag skapar 4 st knappar som array cmd1(0), cmd1(1), cmd1(2), cmd1(3)
kan jag då göra alla dom (visible.false) med ett enda kommando.
Dom är synliga när man startar progget sen ska man trycka på den femte knappen så ska alla bli osynliga.
verkar lite onödigt att skriva
Private Sub Command1_Click()
cmd1(0).visible=false
cmd1(1).visible=false
cmd1(2).visible=false
cmd1(3).visible=false
End Sub
Det går iofs bra att skriva så i detta fall men det kan ju röra sej om monga fler knappar.
/PeterSv: Array
Private Sub Command1_Click()
Dim i As Long
For i = 0 To 3
cmd1(i).visible = False
Next
End Sub
Sedan kan du läsa på For Each som är till för just detta fall,
om du inte vet exakt hur många knappar som är igång.Sv: Array
<code>
Private Sub Command1_Click()
Dim cmd As CommandButton
For Each cmd In cmd1
cmd.visible = False
Next
End Sub
</code>
Då slipper du hålla reda på kontrollernas index. Annars bör man skriva:
<code>
Private Sub Command1_Click()
Dim i As Long
For i = cmd1.LBound To cmd1.UBound
cmd1(i).visible = False
Next
End Sub
</code>
En kontrollaray kan sakna kontroller innom ett intervall. Då kommer en for loop fgenom dess index ge ett fel. Medans en For Each kommer fungera felfritt. Därför är en For each loop att föredra.