Programový přístup ke Controls prostřednictvím jména
Přidáno: 24.8.2007
Kategorie: VB.NET - Komponenty
Autor: Viktor Langer
Někdy je vhodné mít možnost přístupu k jednotlivým objektům kolekce Controls programově přes jméno objektu. Bohužel jméno objektu se v tomto případě nedá "poskládat" jako textový řetězec přímo (např. Label+1 = label1, atd.) V těchto případech může pomoci jednoduchý následující kód (vznikl jako reakce na diskusi, kde zazněl požadavek hromadného vyplnění labelů v cyklu s tím, že je možno jej modifikovat na libovolné jiné prvky i akce s nimi):
For i As Integer = 1 To 10
Dim ind As Integer = Me.Controls.IndexOfKey("label" & i)
If ind < 0 Then
MsgBox("prvek s názvem label" & i & " nenalezen!")
Else
Me.Controls(ind).Text = "Tak toto je label " & i
End If
Next
For i As Integer = 1 To 10
Me.Controls(Me.Controls.IndexOfKey("label" & i)).Text = "Tak toto je label " & i
Next