29. januar 2007 - 14:20
Der er
10 kommentarer og 1 løsning
rende 35 labels igennem
Hej eksperter Hvordan kan jeg rende 35 labels igennem og skrive i dem? Alle mine labels hedder labe1, label2.. label35 Jeg sidder og prøver med: Dim ix As Single For ix = 0 To 35 Label[ix].Text = ix & "test" Next ix men ved ikke hvordan jeg skal få det til at virke.
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
29. januar 2007 - 15:39
#1
prøv noget a la: For Each c As Control In Controls If TypeOf c Is Label Then If c.Name.IndexOf("label") = 0 Then CType(c, Label).Text = Integer.Parse(c.Name.Substring(5)) & "test" End If End If Next
29. januar 2007 - 20:32
#2
Dersker ikke noget og den melder ikke fejl, kan det ikke gøres mere simpelt som jeg prøvede?
29. januar 2007 - 21:16
#3
Jeg havde forestillet mig noget ligende: Dim ix As Single For ix = 0 To 35 eval("label" & ix).Text = ix & "test" Next ix
30. januar 2007 - 03:09
#4
det kan du via reflection men jeg vil klart anbefale den anden løsning
30. januar 2007 - 03:15
#5
noget a la Dim i As Integer For i = 0 To 35 CType(this.GetType().GetField("label" & i).GetValue(this),Label).Text = i & "test" Next i
30. januar 2007 - 10:55
#6
Den skriver at this is noget declared.
30. januar 2007 - 15:30
#7
sorry det er en C#'isme det er: me i VB.NET
30. januar 2007 - 16:27
#8
Jeg gjorde det på den her måde, ville det være smartere at lave det om til din eller? 'Definer labels. Function labels() LabelArray(1) = Label1 LabelArray(2) = Label2 LabelArray(3) = Label3 LabelArray(4) = Label4 LabelArray(5) = Label5 LabelArray(6) = Label6 LabelArray(7) = Label7 LabelArray(8) = Label8 LabelArray(9) = Label9 LabelArray(10) = Label10 LabelArray(11) = Label11 LabelArray(12) = Label12 LabelArray(13) = Label13 LabelArray(14) = Label14 LabelArray(15) = Label15 LabelArray(16) = Label16 LabelArray(17) = Label17 LabelArray(18) = Label18 LabelArray(19) = Label19 LabelArray(20) = Label20 LabelArray(21) = Label21 LabelArray(22) = Label22 LabelArray(23) = Label23 LabelArray(24) = Label24 LabelArray(25) = Label25 LabelArray(26) = Label26 LabelArray(27) = Label27 LabelArray(28) = Label28 LabelArray(29) = Label29 LabelArray(30) = Label30 LabelArray(31) = Label31 LabelArray(32) = Label32 LabelArray(33) = Label33 LabelArray(34) = Label34 LabelArray(35) = Label35 LabelArray(36) = Label36 LabelArray(37) = Label37 Return True End Function 'Smid dage ind. Function makedates(ByVal month, ByVal year) 'Definer variabler, som kun skal bruges til at udskrive datoerne i de rigtige felter. Dim i As Integer Dim rowday As Integer rowday = 1 Dim startday As Single 'Hent labels definationerne ud. labels() 'Find ud af hvad dag måneden starter på. startday = Weekday("01-" & month + 1 & "-" & year, FirstDayOfWeek.Monday) 'Kør alle 37 labels igennem. For i = 1 To 37 If startday > i Then LabelArray(i).BackColor = Color.Empty LabelArray(i).BorderStyle = BorderStyle.None LabelArray(i).Text = "" ElseIf i <= (Date.DaysInMonth(year, month + 1) + startday - 1) Then If i = day And month = Microsoft.VisualBasic.Month(thisdate) - 1 And year = Microsoft.VisualBasic.Year(thisdate) Then LabelArray(i).BackColor = Color.DarkGray Else LabelArray(i).BackColor = Color.LightGray End If LabelArray(i).Text = rowday rowday = rowday + 1 LabelArray(i).BorderStyle = BorderStyle.Fixed3D Else LabelArray(i).BackColor = Color.Empty LabelArray(i).BorderStyle = BorderStyle.None LabelArray(i).Text = "" End If Next i Return True End Function
30. januar 2007 - 16:51
#9
det er ikke nogen daarlig maade enten den eller iterere over controls men hold dig fra reflection
30. januar 2007 - 18:43
#10
Okay :) Men smid et svar fordi du prøvede :)
30. januar 2007 - 18:49
#11
ok
Kurser inden for grundlæggende programmering