Entwickler-Ecke
WinForms - Labelnamen aus Strings bzw. Variablen zusammensetzen
Tom01 - Fr 22.07.11 18:30
Titel: Labelnamen aus Strings bzw. Variablen zusammensetzen
Hallo,
ist es irgendwie möglich, viele Labels in einer Schleife zu bearbeiten?
Beispielsweise heißen die Labels lb1,lb2,lb3,...
Und da würd ich zum Beispiel gerne folgende Codezeilen in einer Schleife durchführen:
C#-Quelltext
1: 2: 3:
| lb1.Text = "a"; lb2.Text = "blabla"; lb3.Text = "bla"; |
Auf die einfachste und logische Art (wie folgt) ist das ja nicht möglich:
C#-Quelltext
1: 2: 3: 4:
| for(int i = 0; i < 4; i++) { lb+i.Text = "was auch immer"; } |
Vielen Dank im Vorraus!
LG
Tom
jaenicke - Fr 22.07.11 18:44
Es gibt Find, damit solltest du alle Controls finden, die nach einer bestimmten Weise benannt sind:
http://msdn.microsoft.com/de-de/library/system.windows.forms.control.controlcollection.find.aspx
Besser wäre allerdings, wenn du es anders löst, z.B. indem du die Steuerelemente vorher in eine Liste packst oder so. Denn wenn du sie über den Namen ansprichst, besteht z.B. immer die Gefahr, dass du bei einer Namensänderung vergisst diese im Code mit anzupassen...
Tom01 - Fr 22.07.11 18:51
Dank dir, das Problem ist nur, jedem Label wird etwas anderes zugewiesen...
LG
Tom
jaenicke - Fr 22.07.11 19:01
Dann bietet sich ein Dictionary an:
http://msdn.microsoft.com/de-de/library/xfhwa508.aspx
Dann kannst du beim Start Konstanten mit dem jeweils zugeordneten Button dort hineinpacken. Ansprechen kannst du die Labels dann auch wieder über die Konstanten. auf diese Weise kann der Compiler die Richtigkeit besser prüfen. Denn so kannst du zwar Konstanten vertauschen, aber keine Tippfehler machen. Denn die kann der Compiler in Strings (den Komponentennamen) ja nicht überprüfen.
Und die ganz saubere Lösung ist natürlich die Trennung der Daten von der Oberfläche, dann stellt sich das Problem gar nicht...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!