Frage

Ich schreibe eine einfache Anwendung, die whena buttton geklickt wird ein Befehl binded ist und ich tue

 {...
newEvent.ExecuteTargets += exacuteNewEvent;
    }

    void exacuteNewEvent(string message)
    {
        Window1 w = new Window1();
        w.ShowDialog();

    }

mein Problem ist, wie die w invoke mein Hauptfenster zu wissen, dass es einen neuen nassage hat soll ich einfügen w ein Verfahren zum Fenster delegieren in er berufen sollte? gibt es eine andere Art und Weise, es zu tun?

War es hilfreich?

Lösung

Führen Sie einen Verweis auf die aktuelle Form und verwenden, die Anruffunktionen auf sie.

class Form1 
{
    void Function() 
    {
        newEvent.ExecuteTargets += exacuteNewEvent;
    }

    void exacuteNewEvent(string message)
    {
        Window1 w = new Window1(this);
        w.ShowDialog();
    }

    public void ExecuteStuffInOtherWindow() 
    {
        // do something
    }
}

class Window1 
{
    Form _otherForm;

    public Window1(Form f) 
    {
        _otherForm = f;
        _otherForm.ExecuteStuffInOtherWindow(); // call code in other form
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top