Aktualisierung label in der main form von user control

In meiner aktuellen Anwendung habe ich eine main form: frmMain mit einem statusstrip und ein label: lblStatus im inneren, dass.
Ich möchte zu aktualisieren, dass die Beschriftung von innen meine user-controls, die ich zu meinem Hauptformular, wenn ich auf den betreffenden button:

ucBeheer ucBeheer = new ucBeheer();
splitContainer1.Panel2.Controls.Add(ucBeheer);

Aus in meine usercontrol wenn ich eine Handlung, ich möchte update lblStatus. Ich habe versucht, indem Sie die folgende Eigenschaft zu meiner Haupt form:

    public string updateStatus
    {
        get { return lblStatus.Text; }
        set { lblStatus.Text = value; }
    }

Und dann Zugriff auf die Methode, wie diese in meinen user-Kontrolle:

        frmMain mainForm = new frmMain();
        mainForm.updateStatus = "This is a test";

Aber das funktioniert nicht, ich weiß, dass dies ist, weil ich ein neues Objekt meiner frmMain, aber ich weiß nicht, wie löst man das sonst?

Habe ich auch gefunden die folgenden Weg, mit einem Event Handler aber ich kann nicht, weil meine Benutzer-Steuerelement ist nicht wirklich in meinem mainForm noch, bis ich es dort hinzufügen mit Klick auf den button, so habe ich nicht einen Hinweis darauf.

So, ich bin irgendwie die Ideen aus, ich hoffe jemand kann mir helfen.
Vielen Dank,
Thomas

Edit: So ich habe es geschafft die folgende Weise:

        frmMain owningForm = (frmMain)this.Parent.Parent.Parent.Parent;
        owningForm.updateStatus = "This is a test";

aber this.Parent.Parent.Parent.Parent... nicht wirklich scheinen, wie eine gute Kodierung zu mir, gibt es einen anderen Weg, um die top-Elternteil?

InformationsquelleAutor Schoof | 2012-04-03
Schreibe einen Kommentar