Autor Beitrag
UPX
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 30.08.14 20:00 
Hallo,

ich möchte gerne einen Textfeld Text weiter geben.
Das funktioniert statisch auch ganz normal mit: "textfeld1.Text;"

Nun möchte ich aber verschiedene Textfelder ansprechen. Ich habe im Programm 10 Textfelder. Warum funktioniert "textfeld[i].Text;" nicht?
Ich bekomme dann immer die Fehlermeldung "The name "textfeld" does not exist in the current context".

Danke und Lg!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 30.08.14 20:19 
Hallo,

wenn du die Textfelder mittels des Designers im Visual Studio erzeugt hast, dann sind das jeweils eigene Instanzen (Variablen) und kein Array (so daß du nicht per Indexoperator darauf zugreifen kannst).
Hast du denn selber schon mit Arrays (oder List<T>) gearbeitet?
Ich verweise mal auf den Artikel Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls (aus dem myCSharp-Forum), da ich es selber auch nicht besser formulieren könnte.
Für dein Problem ist besonders der Absatz "Wie kann man - alle Warnungen im Sinn - die Designer Elemente in ein Array übertragen?" aus dem 2. Beitrag interessant.

Noch besser ist es jedoch die Textfelder gleich dynamisch zu erzeugen und in eine Liste einzutragen. Ich hatte dir für die GroupBox in deinem Thema Mit Button Element erstellen - Anfängerfrage ja schon einen ähnlichen Vorschlag gemacht.