Hallo Leute,
ich habe eine Basisklasse, in der ein Event ist.
Durch die Vererbung in das Kindfenster kann man das Event über ein ButtonClick abfeuern.
Nun würde ich gerne aus der Basisklasse heraus in dem aufgerufenden Event ein neues Event abfeuern, worauf die Kindklasse reagiert => Eine Art Kommunikation zwischen Mutter u. Kindfenster.
Der eine Teil funktioniert, dass das geerbte Event abgefeuert wird. Nur weiß ich nun nicht wie die Basisklasse erkennen kann, dass es ein Kindfenster von sich hat.
Also die Kommunikation von Mutter an Kind geht nicht.
Ich hoffe Ihr könnt mir helfen...
So sieht mein bisheriger Code aus
Basisklasse:
public event EventHandler MyEvent;
public cForm()
{
this.InitializeComponent();
this.MyEvent += myObject_MyEvent;
}
private void OnMyEvent(EventArgs e)
{
EventHandler myEvent = MyEvent;
if (myEvent != null)
{
myEvent(this, e);
}
}
private void myObject_MyEvent(Object objSender, EventArgs e)
{
MessageBox.Show("Insert");
!!!!!!!!!!!!!!!!!!!!!!Hier soll die Nachricht an die Kindklasse gestartet werden!!!!!!!!!!!!!!!!!!!
}
private void button1_Click(object sender, EventArgs e)
{
OnMyEvent(EventArgs.Empty);
}
Ja, auf der Seite war ich schon.
Aber da blicke ich leider nicht durch.
Könnt ihr mir evtl. bei meinem Beispiel helfen??
Gruß
MartinaR
Hallo Martinar,
du meinst mit "Kindfenster" sicherlich ein zweites Fenster, das du ebenfalls via Show anzeigst, oder?
Ja, auf der Seite war ich schon. Aber da blicke ich leider nicht durch.
Wirf lieber einen Blick auf die FAQ: [FAQ] Kommunikation von 2 Forms - dort, und in [FAQ] Eigenen Event definieren / Information zu Events steht genau beschrieben, wie das mit den Events geht.
Ansonsten - wenn es tatsächlich um Vererbung geht, sollte die Kommunikation über virtuelle bzw. abstrakte Methoden erfolgen.
Die Oberklasse stellt eine virtuelle Methode bereit (und ruft sie entsprechend auf) und die Unterklassen überschreiben diese dann.
Könnt ihr mir evtl. bei meinem Beispiel helfen??
Nein, die Umsetzung auf dein konkretes Beispiel ist deine Aufgabe. Und sie ist einfach lösbar. Wir setzen als bekannt voraus, wie man ein EventHandler registriert. Dass sich dabei das Objekt, das den Event auslöst von dem Objekt unterscheidet, das den Event behandeln soll, ist ja nichts ungewöhnliches, sondern der Normalfall.