You are not logged in.

  • Login

1

Sunday, January 30th 2011, 2:06pm

Namen von Steuerelementen über Array in Schleife auslesen und nutzen

Hallo,

bin totaler Neuling in C#. Hab mir jetzt Visual C# 2010 Express geholt und installiert und etwas rumprobiert. Jetzt hänge ich an einem Problem, was ich nicht gelöst bekomme.
Google hilft mir da leider nicht wirklich, weil ich nicht weiß, wie ich suchen soll.

Ich habe ein Array erstellt mit den Namen von Elementen, deren Visible-Attribut ich ändern möchte.

Hintergrund:
Habe ein Fenster, wie ein Eingabeformular drin ist. Dieses Formular wird nach Absenden ausgeblendet und dafür eine Zusammenfassung angezeigt. Dafür will ich die Elemente des Formulars ausblenden mit Visible = false; . Ich will halt nicht jedes einzelne Element definieren müssen, sondern einfach das Array um den Namen des Elements erweitern. Den Rest soll die for-Schleife erledigen.

Hier mal der Code:

Source code

1
2
3
4
5
6
Object[] delfields = { "boxVorname" , "boxNachname" , "lblVorname" , "lblNachname" };

for(int i = 0; i<delfields.Length;i++)
{
      delfields[i].Visible = false;
}


Der Code funktioniert, aber der Debugger gibt einen Fehler aus, dass Objects kein Visible-Attribut haben.

Wieso geht es dann, obwohl es angeblich ein Fehler ist und wie kann ich es richtig machen?

az

Unregistered

2

Sunday, January 30th 2011, 8:54pm

Logo. Was du da hast ist nichts weiter als ein Array von Strings.

Speichere deine GUI-Elemente irgendwo in einem assoziativen Array (unter Java werden die als Map bezeichnet), welches den Namen des Elements auf das jeweilige Element abbildet.

In Java würde es so aussehen:

Java Quellcode

1
2
3
4
5
6
7
8
String[] delfields = { "boxVorname" , "boxNachname" , "lblVorname" , "lblNachname" };
 
for(String fieldName : delfields) {
	GuiElement blablubb = myGUIElements.get(fieldName);
	if (blablubb != null) {
 	   	blablubb.setVisible(false);
	}
}

Portierung auf C# überlasse ich mal dir.

Similar threads

Social bookmarks