Hallo allerseits.
ich hoffe ich übersehe einfach etwas. Deshalb mal hier mein "problem".
Ich habe einen Dialog in denen sind fünf Steuerelemente. (1 x CheckButton, 1 x DropDownMenue, 2 x TextFeld, 1 x DateTimePicker).
Nun soll ich die Eingaben auf Korrektheits prüfen. Auch noch alles in Butter. Man kann die "OnChange"-Nachricht jedes Setuerelementes abfangen und dann prüfen. Damit ich aber nicht fünf Mal den gleichen COde stehen habe, habe ich in jeder "onChange" Methode auf eine private "isValid()"-Methode des Dialoges verwiesen. Nur an dieser einen Stelle teste ich.
Nun wird es aber von oben gewünscht, dass eben nicht für JEDES Steuerelement eine "eigene" Methode hinzugefügt wird. Man wünschst, dass der Dialog selbst erkennt, wann eine Änderung an den Steuerelementen durch den User getätigt wurde. Anschließend soll der Dialog die Korrektheit der Steuerelemente und die Kombinationen überprüfen, ohne jedes Mal eine "OnChange"-Methode für jedes weitere Steuerelement hinzufügen zu müssen.
Also meine Frage: Wie erkennt das Parent-Control (hier der Dialog), wenn sich eins seiner Kinder (Child-Control) verändert haben. Gibt es da einen Automatismus?
Ich programmiere in C# unter VS2008.
Danke im Vorraus.
Taggi
Hallo Taggi,
Der Weg über Events ist schon der richtige.
Was du übersehen hast ist, das du allen deiner Elemente die geiche Funktion für die Events zuweisen kannst.
Beispiel
this.checkBox1.CheckedChanged += new System.EventHandler(this.ValueChanged);
this.textBox1.TextChanged += new System.EventHandler(this.ValueChanged);
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.ValueChanged);
your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself
für validierungen ist eigentlich das validating-Event vorgesehen. eine gruppe von controls kann man etwa validiren, indem man das validating des Containercontrols verarbeitet.
das konzept geht noch bischen weiter, vlt. bringt dir ja auch Control.Validating + ErrorProvider was, o bwohls vb is
Der frühe Apfel fängt den Wurm.
ich möchte nochmals bekräftigen, was ErfinderDesRades gesagt hat.
genau für diese anforderung:
Nun wird es aber von oben gewünscht, dass eben nicht für JEDES Steuerelement eine "eigene" Methode hinzugefügt wird. Man wünschst, dass der Dialog selbst erkennt, wann eine Änderung an den Steuerelementen durch den User getätigt wurde. Anschließend soll der Dialog die Korrektheit der Steuerelemente und die Kombinationen überprüfen, ohne jedes Mal eine "OnChange"-Methode für jedes weitere Steuerelement hinzufügen zu müssen.
nimmt man immer die eingebauten validationsmechnismen und eben nicht die changed-events.