Hallo,
ist es möglich unter c# Controls in der Oberfläche zu identifizieren um sie gezielt verändern zu können?
Beispiel:
Ich habe 10 Textboxen in der Form die händisch mit Werten gefüllt werden.
Eine Routine soll die Werte prüfen.
Bei 10 Textboxen könnte man ja noch schreiben:
C#-Quelltext
1: 2: 3: 4: 5:
| check_wert(TextBox1.Text); check_wert(TextBox2.Text); check_wert(TextBox3.Text); check_wert(TextBox4.Text); check_wert(TextBox5.Text); |
usw.
Was machen ich wenn ich 20, 50 oder vielleicht 100 habe?
Da wäre eventuell eine Schleife sinnvoll - z.B.:
Quelltext
1: 2: 3: 4: 5:
| // Pseudo-Code For i:= 1 to 10 do begin check_wert(TxtBxName.Text); end |
Nun sind aber nicht alle Controls in der Oberfläche gleichen Typs und man muss sie erst mal finden und identifizieren.
Ich habe schon mit Controls.Contains() und Form.Contains() versucht an die Controls ranzukommen.
Das hier...
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| ListBox lb_l = new ListBox(); lb_l.Name = "lb1"; if (this.Contains(lb_l)) { MessageBox.Show("Es gibt sie tatsächlich!"); } else { MessageBox.Show("Es gibt sie leider nicht!"); } |
...bringt es jedenfalls nicht! Code funktioniert zwar, aber es kommt immer "Es gibt sie leider nicht!" - obwohl diese Listbox mit Namen "lb1" existiert!
Ich kann mich noch erinnern, dass es unter Delphi mal eine Möglichkeit gab, so was zu realisieren.
Nur wie sieht die Umsetzung in c# aus - jemand eine Idee?