von Form zu Form und zurück



  • Ich habe 2 Forms.
    mit einem Button manipuliere ich die Eigenschaft des Labels auf Form2. Das geht auch, aber wie kann ich mit dem Button auf Form2 das Label auf Form1 ändern. Eine neue Instanz von Form1 were doch doof, oder?
    also kommt

    namspace.Form1 frm=new Form1();
    frm.label1.text="Hallo";
    frm.schow();
    Das sollte doch nicht so sein Form1 gibt es doch schon. Irgendwie geht das nicht.
    Kann mir da mal jemand helfen.



  • Du musst das Label durch ne öffentliche Eigenschaft in der Form1 verfügbar machen und deiner Form2 dein Form1 Objekt übergeben, dann klappts auch mit dem darauf zugreifen 🙂



  • @Talla@work
    Wie übergeben?
    Public sind beide Label.

    Danke für Deine Hilfe



  • Horst23 schrieb:

    @Talla@work
    Wie übergeben?
    Public sind beide Label.

    Danke für Deine Hilfe

    Mach die Label lieber private und verwende nen Property, so etwa:

    public Label MeinLabel {
      get { return m_label; }
      set { m_label = value; }
    }
    

    m_label ist dein Label auf der Form auf das du zugreifen möchtest.

    In der zweiten Form kannst du dir nen Konstruktor basteln der noch eine Form übernimmt:

    public Form2(Form val)
    {
      m_form1 = val;
    }
    

    m_form1 ist dabei ne Variable vom Typ Form in der du die übegebene Form speicherst. Deine Form1 übergibts du nun im Konstruktor und kannst dann mit m_form1.MeinLabel = "wasweißich" den Text setzen.



  • @Talla@work

    Danke esrteinmal für Deine Hilfe, aber irgendwie verstehe ich nur Bahnhof. Was ist denn val im Konstruktor.
    ich bekomme da folgende Fehlermeldung:
    Der Name 'm_form1' besteht nicht in der Klasse oder dem Namespace 'von_Form_zu_Form.Unterform'



  • Horst23 schrieb:

    @Talla@work

    Danke esrteinmal für Deine Hilfe, aber irgendwie verstehe ich nur Bahnhof. Was ist denn val im Konstruktor.
    ich bekomme da folgende Fehlermeldung:
    Der Name 'm_form1' besteht nicht in der Klasse oder dem Namespace 'von_Form_zu_Form.Unterform'

    val ist einfach der Name der Variablen die du übergibst, kann auch hansi oder peter heißen 🙂 und du musst dir in deiner Form2 natürlich eine Variable vom Typ Form anlegen damit du später auf die zugreifen kannst, und bei mir heißt die nunmal m_form1. Noch was unklar?



  • @Tall@work
    Irgendwie bin ich wohl zu .....
    Wenn ich nun meine Form2 über den Button aufrufe bekomme ich folgende Fehlermeldung.

    Keine Überladung für die Methode 'Form2' erfordert '0' Argumente

    Ich habe nun die Variable von Form auf meinem Form2.
    Wenn ich nun aber die Form über den Button aufrufe
    Form2 frm=new Form2();
    frm.Show(); moniert er das new.


Anmelden zum Antworten