Der er ingen grund til at sætte points op. Jeg skal prøve at forklare koden:
1) For Each Ctrl In Me.Controls ......Next Ctrl
-Løber igennem alle kontroller i formen.
2) If TypeOf Ctrl Is CheckBox Then......End If
-Hvis kontrollen er en CheckBox, så...
3) Dim Cbox As CheckBox = DirectCast(Ctrl, CheckBox)
-Opret en instans af en CheckBox, og sæt den lig den aktuelle kontrol
4) If Cbox.Checked = True Then.......End If
-Hvis den er Checked, så...
5a) lCount += 1
-Forøg tælleren med 1
5b) If lCount > 4 Then Exit For
-Hvis der er flere end 4 CheckBoxe der er Checked behøver vi ikke tælle mere, og går ud af loopet.
5c) lVal(lCount) = CLng(Cbox.Name.Substring(9))
-Hvis der ikke er talt 4 endnu, skal CheckBoxens "Værdi" gemmes i lVal-arrayet. CheckBoxens "Værdi" er i dette tilfælde det tal der indgår i navnet. Cbox.Name.Substring(9) er alle karakterer i CheckBoxens navn fra karakter 9 og frem. Det er en string der konverteres til et tal med CLng().
-Dette er for i øvrigt en fejl fra min side. Der er ingen grund til at konvertere. Jeg lægger en ny version af koden nederst.
6) Nu er Loopet kørt, og vi har talt hvor mange CheckBoxe der er Checket. Vi har desuden gemt tallene fra disse CheckBoxe i Arrayet lVal.
7) If lCount = 4 Then....Else.....End If
-Hvis der er præcis 4 CheckBoxe der er Checket, så...
8) TextBox1.Text = CStr(lVal(1)) osv.
-Skriv værdierne fra lVal-arrayet til de 4 TextBoxe.
9) Under Else
-Hvis der er flere eller færre end 4 CheckBoxe der er Checket, så...
10) MsgBox("Der er ikke krydset korrekt antal checkboxe af")
-Giv bruger besked med en message box.
Dim i As Long, lCount As Integer, lVal(4) As String, Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is CheckBox Then
Dim Cbox As CheckBox = DirectCast(Ctrl, CheckBox)
If Cbox.Checked = True Then
lCount += 1
If lCount > 4 Then Exit For
lVal(lCount) = Cbox.Name.Substring(9)
End If
End If
Next Ctrl
If lCount = 4 Then
TextBox1.Text = lVal(1)
TextBox2.Text = lVal(2)
TextBox3.Text = lVal(3)
TextBox4.Text = lVal(4)
Else
MsgBox("Der er ikke krydset korrekt antal checkboxe af")
End If