vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Array von Controls 
Autor: Holger Maik
Datum: 27.10.15 18:15

Hallo
Ich habe ein Form mit ca. 50 Label. In VB6 habe ich einfach ein Array angelegt und konnte somit ein Control über seinen Index erreichen. Da dies in .NET ja nicht mehr unterstützt wird, bin ich auf der Suche nach einer einfachen Idee um dies zu erreichen.
Ich möchte z.B. von Label 50 die Hintergrundfarbe ändern. Die Labelnummer wird dabei errechnet, ist also dynamisch.
Leider habe ich nichts vernünftiges gefunden ohne eine riesige IF oder Select Abfrage zu programmieren.
Hat jemand eine Idee dazu?

Grüße Holger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Array von Controls 
Autor: GPM
Datum: 27.10.15 18:30

Siehe:

http://www.vbarchiv.net/forum/id22_i98619t98619_schleife-fuer-buttons-in-vb2015.html

MfG GPM
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Ergänzende Hinweise 
Autor: Manfred X
Datum: 27.10.15 21:33

Die generischen Listen-Objekte im Namespace
"System.Collections.Generic" können als Elemente (Items)
beliebige Objekte aufnehmen - also z.B. Controls,
Usercontrols oder vom Benutzer erstellte Klassen.

Mit "Addhandler"/"RemoveHandler" lassen sich Ereignis-
verarbeitungsroutinen dynamisch solchen Items zuordnen.

Zu beachten ist, daß in Listen jederzeit per Code Items
angefügt oder eingefügt, gelöscht oder umsortiert werden können.
Nach solchen Operationen ändert sich die Zuordnung zwischen
dem Index und dem jeweils indizierten Objekt!
Man sollte deshalb beim Eintrag von Klassen-Instanzen in Listen
eindeutige Namen vergeben, damit stets die Identifizierung möglich
ist.

Arrays, deren Elemente Controls sind, können ebenfalls erstellt werden.
   'Erstellung des Array - zunächst leere Elemente (Nothing) 
   Dim mylabels(49) As Label
 
   'Füllen des Array mit frischen Labels
   For i As Integer = 0 To mylabels.Length - 1
       mylabels(i) = New Label With _
           {.Name = "Label" & i.ToString, .Text = i.ToString}
       mylabels(i).Parent = Me
       mylabels(i).Top = i * 30
       AddHandler mylabels(i).Click, AddressOf Mylabels_click
   Next i
 
   'Zugriffe auf Label am Index 49
   mylabels(49).BackColor = Color.LightGray
   Dim str As String = mylabels(49).Text
 
   .....
Die Ereignis-Routine Click für alle Labels
Private Sub Mylabels_click(sender As Object, e As EventArgs)
   MessageBox.Show(DirectCast(sender, Label).Text & " ist geclickt worden")
End Sub
Container (z.B. Form, Panel) verfügen über eine Controls-Auflistung,
die aus Referenzen auf die darin aktuell enthaltenen Controls besteht.

Beitrag wurde zuletzt am 27.10.15 um 21:50:15 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ergänzende Hinweise 
Autor: Holger Maik
Datum: 29.10.15 22:03

Hallo Manfred
Danke für das Beispiel und die Erklärung.
Genau was ich gesucht habe.
Holger
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel