Veröffentlicht 13. März 200916 j Guten Tag! Ich möchte gerne mehrere Checkboxen überprüfen, ob die angeklickt werden. Dies wollte ich in einer Schleife realisieren. Hier aus dem Forum hatte ich folgendes: int i = 0; for (i = 1; i <= 10; i++) { this.Controls.Find("Textbox" + Convert.ToString(i), false)[0].Text = "Test"; } Dies hab ich dann auf meinen Fall so abgeändert: int i=0; for (i = 1; i <= 49; i++) { if (this.Controls.Find("checkBox" + Convert.ToString(i), false)[0].Checked == true) { //... } } Leider sagt mir Visual Studio, dass es "Checked" nicht kennt. Ersetzt ich Checked durch Visible funktioniert der Code, aber ich möchte halt gern Prüfen, ob die Checkboxen aktiviert worden sind. Danke schonmal im Vorraus MfG
13. März 200916 j FindControls liefert die nur ein Element vom Typ Control zurück welches kein Check Attribut hat. Du musst das in eine CheckBox casten
13. März 200916 j CheckBox chk = Controls.Find("MyControl",true)[0] as CheckBox; if (chk != null) { ... }[/PHP] Wobei du natürlich eine Exception bekommst wenn er gar kein Control mit der ID findet. Deshalb solltest das auch erstmal prüfen. Schöner wäre es wenn du einfach durch alle Controls des Elements das deine Checkboxen enthält durchiterierst und da prüfst ob es eine Checkbox ist. Also [PHP] foreach (Control ctrl in Parent.Controls) { CheckBox chk = ctrl as CheckBox; if (chk != null) { //Control ist eine CheckBox } }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.