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???
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
McSaesch Geschrieben 20. Mai 2008 Autor Geschrieben 20. Mai 2008 Hallo klingt interessant, wird nachher gleich ausprobiert. THX
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";
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:
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
SoL_Psycho Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 for(i=1;i<=10; i++) { this.Controls("Textbox" + Convert.ToString(i)).Text = "Test"; }
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?
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...
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.
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
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.
Aezugles Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 ah sry stimmt, funzt, hatte ne textbox benannt. sry Code funzt! Vielen dank!
SoL_Psycho Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 *seufzt* Werd .NET vermissen, für mich gehts bald Richtung Perl..
Cadpax Geschrieben 25. Mai 2008 Geschrieben 25. Mai 2008 Mein aufrichtiges Beileid. *timetosaygoodbyeanstimm*
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
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. ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden