Datenübergabe von einem form zum anderen



  • aja, das ist es!! Ich schreib da was zur Laufzeit hinein in das Textfeld. Wie erstelle ich also eine richtige Instanz?



  • die existiert schon irgendwo , wenn du sie zur Laufzeit siehst

    ich vermute mal du hast die Form mit nen Designer gebastelt ....
    eventuell macht dein Programm irgendwo

    Application.Run(new Form1());
    

    dann solltest du das, was mit new erzeugt wird in einen Memberspeichern
    und dann an deiner Stelle draufzugreifen



  • OK, danke! Daran hab ich nicht gedacht das ich da eine völlig neue Instanz erzeige. Dachte das bezieht sich immer auf das gleiche Form. Wüßte grade nicht was das für einen Sinn haben soll wenn ich eine Instanz erzeuge welche nix mit dem gezeigten form zu tun hat....

    danke nochmal.

    lg



  • Wüßte grade nicht was das für einen Sinn haben soll wenn ich eine Instanz erzeuge welche nix mit dem gezeigten form zu tun hat....

    Ich auch nicht.
    Und:
    Der Sinn von Klassen ist unter anderem: Eine Schablone (Klasse), eines oder mehrere Objekte (Instanzen).



  • hehe kein Problem 😉
    Am Anfang solltest du vielleicht auf die Verwendung von diesen Designerzeugs verzichten .... ist zwar ne super Erleichterung jedoch trägt es, wenn man eine Sprache erlernen möchte, nicht unbedingt zum Verständnis bei.
    lg



  • ich nochmal:

    keine Ahnung wie ich eine Referenz auf die ausführende Instanz bekomme?!?

    das ist meine main methode:

    static void Main() 
    {
    	Application.Run(new Form1());
    }
    


  • Application.Current



  • ok noch mal kurz zum Verständins

    ...
    	Form1 frm1 = new Form1();			
            Form1 frm2 = new Form1();
    	frm2.Show();
    	Form frm3 = new Form1();		
    	frm3.Show();
            Application.Run(frm1);
    ...
    

    in jeder Variable hast du jetzt unterschiedliche Referenzen zu einer von den 3 Instanzen
    des Fensters. Diese Referenzen könntest du nun, an die einzelnen Frames übergeben, in dem du bestimmte setFunktionen einbaust. Die dann frm1,..3 als Parameter mitbekommt.Und später dann beim Mausklick, in einen der Fenster, kannst du dann die anderen Fenster ansprechen.
    oder wenn dir das mit der Setfunktion zu aufwendig ist kannst du halt direkt draufzugreifen mit:

    Application.OpenForms[tIndex]
    

    Da du den Index aber wahrscheinlich nicht weißt musst du den Titel des Fensters übergeben
    lg



  • Danke erstmal,

    das mit den Instanzen hab ich eh verstanden.
    Ich würde zum Beispiel die mainmethode von oben so abändern:

    static void Main() 
    {
    	Form1 a = new Form1();
    	Application.Run(a);
    
    }
    

    somit habe ich in a die Referenz dieses Forms gespeichert.
    Mir ist nur nicht klar wie ich jetzt dieses 'a' in das 2. Form bekomme??

    Was ist application.current ? Das gobts bei mir nicht so wie´s aussieht 🙂



  • Also um die Sache jetzt abzuschließen: Habe das Problem jetzt so gelöst:

    Ich habe eine weitere classe erstellt "openClasses" in der ich von jedem offenen Fenster die referenzen speichere.

    Über eine Instanz von openClasses kann ich dann auf jedes Fenster zugreifen 🙂

    lg
    wolf


Anmelden zum Antworten