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 Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
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