Zugriff auf Elemente des Parentforms?



  • Hallo zusammen!

    wie kann von einem Formular aus auf Elemente des erzeugenden Forms zugriffen werden?

    z.B.: Auf dem Hauptform liegt eine RichEditBox. Aus diesem Form wird ein weiteres Form geöffnet:

    Form form2 = new form2();
    form2.Show();

    Wie kann nun aus diesem Form2 auf den Inhalt der RichEditBox des Form1 zugegriffen werden?

    Besten Dank

    Jürgen



  • Bin mir nicht sicher, da ich es gerade nicht ausprobieren kann, aber versuche mal:
    form1.RichEditBox.[...]

    form1 ist natürlich dein Hauptformular. Ich denke das sollte klappen.

    Code-Hacker



  • Hallo,

    das habe ich versucht, dann kommt folgende Fehlermeldung:
    "Auf '.Form1.richTextBox1' ist der Zugriff aufgrund der Sicherheitsebene nicht möglich"

    Gruss

    Jürgen

    P.S.: Es sollte natürlich "richTextBox" statt "richEditBox" heissen 😉



  • Wenn ich den Access der richTextBox nach "public" ändere kommt folgende Fehlermeldung:
    "Ein Objektverweis ist für das nicht statische Feld, Methode oder Eigenschaft '.Form1.richTextBox1' erforderlich."

    Jürgen



  • das problemm ist, dass du versucht das, was in bcb standard ist auf c# anzuwenden. z.b. gibt es in bcb standardmässig eine instanz von deinem form.

    versuch mal folgendes:

    in form1

    Form2 f2 = new Form2();
    f2.Parent = this;
    f2.Show();
    

    in form2

    // irgendwo im quelltext
    Form1 f1 = (Form1)Parent;
    f1.richTextBox1.<wasdumachenwillst>
    ...
    

    richTextBox1 natürlich public



  • zumindest lässt sich das Fehlerfrei übersetzen. Beim ausführen und Aufrufen der Form2 gibt der Debugger im Fenster .. folgende Meldung aus:
    "Eine nicht behandelte Ausnahme des Typs 'System.ArgumentException' ist in system.windows.forms.dll aufgetreten.
    Zusätzliche Informationen: Ein Steuerelement der oberen Ebene kann nicht zu einem Steuerelement hinzugefügt werden."

    Dies genau nach der Zeile mit der Parentzuweisung:

    Form frm_language = new frm_language();
    frm_language.Parent = this;
    // hier kommt die Meldung !!!!
    frm_language.Show();
    

    Jürgen



  • Sorry...

    das heisst natürlich Owner bei einem Formular und nicht Parent

    also

    Form2 f2 = new Form2(); 
    f2.Owner = this; 
    f2.Show();
    

    und

    Form1 f1 = (Form1)Owner; 
    f1.richTextBox1.<wasdumachenwillst>
    


  • Danke!!!

    jetzt geht das!

    Ich habe mir den Zugriff auf Elemente zwischen den Formen generell einfacher vorgestellt!

    Gruss

    Jürgen


Anmelden zum Antworten