Objekt benachrichtigen
-
Ich habe auf meiner Form eine checkBox . Wenn sich die ändert soll mein UserControl informiert werden. Kann mir mal einer nen Tipp geben wie man das lösen könnte ?
-
Erstelle im User Control eine Methode. Im EventHandler der Checkbox rufst du dann die UserControl Methode auf.
-
Also das User control erstell ich dynamisch. Ich kann es also nicht mit Namen ansprechen. Soll heißen jedes User Control auf der Form soll informiert werden.
Auch diejenigen die dynamisch erzeugt werden.
-
danke für deinen Tipp , aber in der Form steht mir die Methode nicht zur Verfügung. Ich hab im User Control eine Methode inform() angelegt und versucht sie in der Form aufzurufen. Aber geht nicht .
-
Du speicherst das/die User Controls doch sicher irgendwo - wenn nicht, solltest du es jetzt machen. Und mit einer Variable, die das Control gespeichert hast, kannst du auch dessen Methoden aufrufen.
-
Hallo Harald,
wenn du mehrere UserControls erzeugt hast, dann speichere diese am besten in einer List<T>, d.h.
List<MyUserControl> myUserControls; // als Klassenmember der Form // in Methode, welche die UserControls erzeugt MyUserControl uc = new MyUserControl(); myUserControls.Add(uc);
Und dann kannst du mit einer for- oder foreach-Schleife alle UserControls durchiterieren:
foreach(MyUserControl uc in myUserControls) uc.Inform(...);