McSaesch Geschrieben 19. Mai 2008 Geschrieben 19. Mai 2008 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??? Zitieren
HJST1979 Geschrieben 19. Mai 2008 Geschrieben 19. Mai 2008 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 Zitieren
McSaesch Geschrieben 20. Mai 2008 Autor Geschrieben 20. Mai 2008 Hallo klingt interessant, wird nachher gleich ausprobiert. THX Zitieren
SoL_Psycho Geschrieben 22. Mai 2008 Geschrieben 22. Mai 2008 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 ) Code: this.Controls("Textbox" + i).Text = "Test"; Zitieren
Aezugles Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 for(int i = 1; i <=10; i++){ TextBox.text = "Test"; } Könnte Klappen, bin mir aber gerade nicht so sicher. Kann zwar ein bisschen C# aber ja:rolleyes:. HF:floet: Zitieren
Aezugles Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 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 Zitieren
SoL_Psycho Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 for(i=1;i<=10; i++) { this.Controls("Textbox" + Convert.ToString(i)).Text = "Test"; } Zitieren
Aezugles Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 Ich hätte eher an sowas gedacht: int i; string Dump; for (i = 1; i <= 10; i++) { Dump = "textBox" + i; (Dump as TextBox).Text = "Test"; } Geht aber leider auch nicht, da ich den String in keine Textbox umwandeln kann. Ideen? Zitieren
SoL_Psycho Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 HF int i = 0; for (i = 1; i <= 10; i++) { this.Controls.Find("Textbox" + Convert.ToString(i), false)[0].Text = "Test"; } Getestet und läuft... Zitieren
Aezugles Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 bekomme bei deinem Code ned Exception(Der Index war außerhalb des Arraybereichs.) nicht den ganze Code gepostet? Sry interssier mich auch gerade dafür, weil ich gerade auch selber nicht weiss wie ich zu lösung kommen würde. Zitieren
SoL_Psycho Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 (bearbeitet) Spontane Erklärung wäre, dass du keine 10 Textboxen erstellt hast Index Out Of Range = Du zählst höher, als du Textboxen hast... Bearbeitet 24. Mai 2008 von SoL_Psycho Zitieren
Aezugles Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 hm nein, habe 10 textBoxen. Habe auch in der for-schlaufe "Textbox" zu "textBox" umgeschrieben, default TextBoxen sind so geschrieben. Zitieren
Aezugles Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 ah sry stimmt, funzt, hatte ne textbox benannt. sry Code funzt! Vielen dank! Zitieren
SoL_Psycho Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 *seufzt* Werd .NET vermissen, für mich gehts bald Richtung Perl.. Zitieren
Cadpax Geschrieben 25. Mai 2008 Geschrieben 25. Mai 2008 Mein aufrichtiges Beileid. *timetosaygoodbyeanstimm* Zitieren
McSaesch Geschrieben 26. Mai 2008 Autor Geschrieben 26. Mai 2008 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 Zitieren
TDM Geschrieben 26. Mai 2008 Geschrieben 26. Mai 2008 ... 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. ... Zitieren
Empfohlene Beiträge
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.