Veröffentlicht 19. Mai 200817 j 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???
19. Mai 200817 j 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
22. Mai 200817 j 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";
24. Mai 200817 j 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:
24. Mai 200817 j 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
24. Mai 200817 j for(i=1;i<=10; i++) { this.Controls("Textbox" + Convert.ToString(i)).Text = "Test"; }
24. Mai 200817 j 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?
24. Mai 200817 j 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...
24. Mai 200817 j 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.
24. Mai 200817 j 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 200817 j von SoL_Psycho
24. Mai 200817 j hm nein, habe 10 textBoxen. Habe auch in der for-schlaufe "Textbox" zu "textBox" umgeschrieben, default TextBoxen sind so geschrieben.
26. Mai 200817 j Autor 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
26. Mai 200817 j ... 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. ...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.