Jag håller på med ett flygsystem, jag har cirkus 400 knappar, skulle vilja hitta ett sätt att ändra färgen på alla knapparna på en gång genom en loop utan att skriva ut alla 400 manuellt.. Det bästa vore om du hade alla knapparna i en array, då hade det gått att loopa :/ löste det såhär varför inte göra loopen som: Byta ut ett NAMN.text mot en variabel
Jag skulle därför behöva byta ut ett namn på ett objekt mot en variabel.
Typ.
Dim knappensNamn As String = "btnD" & x
For x=1 To 400
knappensNamn = "btnD" & x
knappensNamn.backcolor = color.black
next
Detta fungerar inte, men om någon förstår min princip kanske!? Det borde väl gå o lösa på nåt sätt, snälla hjälp mig snabbt.
Tack på förhand.Sv: Byta ut ett NAMN.text mot en variabel
Men, men, titta på this.Controls-collectionen, den kan du loopa igenomSv:Byta ut ett NAMN.text mot en variabel
Dim z As Integer
For z = 0 To Me.Controls.Count - 1 Step 1
If InStr(Me.Controls.Item(z).Name, "btnA", CompareMethod.Text) > 0 _
Or InStr(Me.Controls.Item(z).Name, "btnB", CompareMethod.Text) > 0 _
Or InStr(Me.Controls.Item(z).Name, "btnC", CompareMethod.Text) > 0 _
Or InStr(Me.Controls.Item(z).Name, "btnD", CompareMethod.Text) > 0 Then
Me.Controls.Item(z).Enabled = True
Me.Controls.Item(z).BackColor = Color.RosyBrown
End If
Next
SAMT:
Dim z, y, Number As Integer
Dim Letter, Comb As String
For y = 5 To 76 Step 1
If drKund.GetString(y) = "x" Then
If y >= 5 And y <= 22 Then
Letter = "A"
Number = y - 4
ElseIf y >= 23 And y <= 40 Then
Letter = "B"
Number = y - 22
ElseIf y >= 41 And y <= 58 Then
Letter = "C"
Number = y - 40
ElseIf y >= 59 And y <= 76 Then
Letter = "D"
Number = y - 58
End If
Comb = "btn" & Letter & Number
For z = 0 To Me.Controls.Count - 1 Step 1
If Me.Controls.Item(z).Name = Comb Then
Me.Controls.Item(z).BackColor = Color.Black
Me.Controls.Item(z).Enabled = False
End If
Next
End If
NextSv: Byta ut ett NAMN.text mot en variabel
foreach (Control myControl in Controls)
if (myControl is Button)
{
//Do your thing
myControl.Enabled = true;
myControl.BackColor = Color.RosyBrown;
}
Just det... ovanstående är C# men det är inte så svårt att göra om...
Tänk på att om du har olika hållarobjekt måste du göra funktionen rekursiv.
Varför anger du Step förresten om du bara vill ha 1? Det är defaultvärdet.
/Emma