btl-norway Skrevet 12. oktober 2008 Del Skrevet 12. oktober 2008 (endret) Jeg skal automatisk checke 5 checkboxer. Jeg vil gjerne skrive koden slik. Dim i As Integer For i = 1 To 5 CheckBox + i + .Checked = True Next i Dette går ikke. Finnes det en løsning på dette? Endret 12. oktober 2008 av btl-norway Lenke til kommentar
aadnk Skrevet 12. oktober 2008 Del Skrevet 12. oktober 2008 (endret) Det finnes mange måter. Her er et lite utvalg: Public Class Form1 ' Den enkleste metoden er nok imidlertid å gruppere kontrollene manuelt (må initialiseres i Form_Load) Private YourGroup() As CheckBox Private Sub btnSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSet.Click ' (1) Avkrysser alle sjekkbokser som starter med en gitt streng For Each Item As Control In Me.Controls If TypeOf Item Is CheckBox Then With DirectCast(Item, CheckBox) ' Man kan fint bruke andre identifikasjonsmetoder (Hint: Tag-egenskapen) If .Name.StartsWith("CheckBox") Then .Checked = True End If End With End If Next ' (2) Som ovenfor, men bruker her LINQ (inkludert i VB.NET 2008) For Each CheckBox In Me.Controls.OfType(Of CheckBox)() If CheckBox.Name.StartsWith("CheckBox") Then CheckBox.Checked = True End If Next ' (3) Om disse sjekkboksene må refereres til ofte, kunne det vært en god idè å "refactor"-e ' utvelgelsen til en egen prosedyre (og evt. lagre resultatet i en variabel). For Each CheckBox In ControlGroup(Of CheckBox)("CheckBox") CheckBox.Checked = True Next ' (4) Manuel gruppe For Each CheckBox In YourGroup CheckBox.Checked = True Next End Sub Public Function ControlGroup(Of T As Control)(ByVal GroupName As String) As IEnumerable(Of T) ' Dersom man ikke har tilgang til LINQ må man bruke metode (1) internt Return Me.Controls.OfType(Of T)().Where(Function(x) x.Name.StartsWith(GroupName)) End Function Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' Kan ikke plasseres øverst da kontrollene ikke er initialisert på det tidspunktet YourGroup = New CheckBox() {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5} End Sub End Class Endret 12. oktober 2008 av aadnk Lenke til kommentar
btl-norway Skrevet 12. oktober 2008 Forfatter Del Skrevet 12. oktober 2008 Jeg er ikke fornøyd med emnetittelen. Noen bedre forslag på emnetittel? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå