Hallo,
ich möchte alle Controls auf einem Formlar durchlaufen, und bei einigen (Die die Eigenschaft Pflichtfeld haben) prüfen ob ein Text drin ist.
Ist keiner drin, dann wird ein ErrorProvider aktiviert und der Text in dem Steuerelement markiert.
Hier habe ich durch eine bool Variable gesteuert, dass wenn er bei dem ersten Pflichtfeld einen Treffer hat und den Text markieren hatt er beim nächsten nur den ErrorProvider setzten soll, der Focus aber auf den ersten falschen Feld der Tab Reihenfolge stehen bleibt.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| bool Plausi_OK = true;
foreach (Control ctl in this.Controls) { if (ctl is Label == false) { if (ctl is ks_Steuerelemente.ks_Date_TextBox) { ks_Steuerelemente.ks_Date_TextBox Feld = (ks_Steuerelemente.ks_Date_TextBox)ctl; if (Feld.Pflichtfeld == true) { if (Feld.IstNull == true) { this.errProvider.SetError(Feld, Feld.Plausibilitaetstext); this.errProvider.SetIconAlignment(Feld, Err_Icon_Position); if (Plausi_OK == true) { Feld.Focus(); Feld.SelectAll(); Plausi_OK = false; } } } } } } |
Das Problem ist aber, dass er die Controls querbeet durchläuft und nicht wie der TabIndesx ist. Wie kann ich das umbiegen?
Gruß und Dank
Martin