Zum Inhalt springen

[C#] Textboxen in Schleifen ansprechen


McSaesch

Empfohlene Beiträge

Hallo

Ich hab ein kleines Problem, zu dem ich keine wirkliche Lösung finde.

Ich habe 10 Textbox (Textbox1, Textbox2,...) und möchte die in einer Schleife nacheinander füllen.

for(i=1;i<=10; i++)

{

textbox(i).text = "Test";

}

Und genau an der Stelle komm ich nicht weiter, wie krieg ich es hin die Nummern der Textboxen per Variable i darzustellen und die entsprechenden Textboxen dann anzusprechen?? Jemand ne Idee???

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

ich kann zwar nicht C# (zumindest bin ich nicht der stärkste darin). Aber hier ein kleiner Lösungsansatz in VB.NET.


For Each Control In Me.Controls

   If TypeOf Control Is TextBox Then

        Control.text = "Test"

   End If

Next

Natürlich kannst die Bedingungen auch noch anders setzen. Ich persönlich mache es sogar so, dass ich beim Öffnen der Maske alle Elemente die ich später füllen möchte in ein Object-Array einfüge, um dann später nur noch das Object- Array durchlaufen zu müssen.

Gruß Hans-Jörg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

Ich hab ein kleines Problem, zu dem ich keine wirkliche Lösung finde.

Ich habe 10 Textbox (Textbox1, Textbox2,...) und möchte die in einer Schleife nacheinander füllen.

for(i=1;i<=10; i++)

{

textbox(i).text = "Test";

}

Und genau an der Stelle komm ich nicht weiter, wie krieg ich es hin die Nummern der Textboxen per Variable i darzustellen und die entsprechenden Textboxen dann anzusprechen?? Jemand ne Idee???

VB Code:

Me.Controls("textbox" & i).Text = "Test"
C# (programmier ich kaum, daher keine Garantie :D) Code:
this.Controls("Textbox" + i).Text = "Test";

Link zu diesem Kommentar
Auf anderen Seiten teilen

SRY stimmt nicht klappt nicht.

Mir ist gerade in den sinn gekommen, dass die Textbox so nicht ohne weiteres ansteuer bar ist, da "textBox1" ein Name und somit ein string ist, durch die For-schlaue wird jedoch ein Integer verwendet.

Wir also sehr kompliziert mit der sache, schreibe lieber die TB's so auf.

Würde ich auf jedenfall so machen.

Greetz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

Hab mir mal eure Beiträge angesehen und ein bisschen gespielt.

object[] ar_lbl = new object[6];

private void button3_Click(object sender, EventArgs e)

{

int i = 0;

foreach (Control cnt in this.Controls)

{

if (cnt is Label)

{

ar_lbl = cnt.Name.ToString();

i++;

}

}

So kannich alle Label ansprechen (wenn man nach Label sucht) schreibt sie in ein Objektarray und kann damit arbeiten.

Vielen Dank!:bimei

Link zu diesem Kommentar
Auf anderen Seiten teilen

...

Und wenn du mehr als 6 Labels hast, kommt es zu einem Bufferüberlauf.

...

Und wenn du schon arrays benutzen willst, dann nimm wenigstens Stringarrays wenn du die eh nur mit Strings füllst. Dann brauchst du später nicht zu casten.

...

:rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...