Announcement

Collapse
No announcement yet.

MDI Datenaustausch zwischen zwei Forms

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MDI Datenaustausch zwischen zwei Forms

    Hallo,
    ich habe ein Problem mit dem Datenaustausch in einer MDI Anwendung zwischen den Form's.

    Ich habe ein HauptForm, Form2 und Form3.

    Der Datenaustausch von Form2 nach HauptForm funktioniert.

    ((HauptForm)this.Owner).textBox1.Text= "wert1";

    Aber wie kann ich von Form2 nach Form3 Daten übermitteln?

    ((Form3)this.Owner).textBox1.Text= "wert2"; Fehler
    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    MfG
    Michael

  • #2
    Hallo Michael,

    ich habe ein ähnliches Problem, aber bei mir funktioniert der Zugriff auf das Hauptformular (sprich den MDI-Container) nicht. Er bricht dort mit der Exeption:
    "Object reference not set to an instance of an object."

    Kannst du mir bitte helfen?

    Gruß, Manfre

    Comment


    • #3
      hi,

      habt ihr schonmal
      ((HauptForm) this.MDIParent).textBox1.Text = "Wert1";

      oder im childform:
      Form[] children = (((HauptForm) this.MDIParent)MDIChildren);
      probiert?

      ansonsten könnte man auch eine statische Klasse anlegen, die das childrenform-Array vorhält und im Constructor / Destructor der ChildForms das ganze aktualisiert oder wenigstens eine Referenz aufs Mainform vorhält.

      Gruß,
      Matthias Leonhard

      Comment


      • #4
        Hallo Matthias!

        Ich habs nun mit deiner Anweisung probiert und es funkt. Danke!!

        ((Form1)this.MdiParent).toolStripButton1.Enabled = true;

        Der Austausch zwischen 2 Formularen läuft dann entsprechende ab. Nur muss ich hier im Form2 den Owner setzen.
        Probiert hab ichs einfach mit dem Enable für einen Button w.f.
        (button1 ist im Form2 bei Modifiers auf public geschaltet!!!)

        Form2:

        private void button1_Click(object sender, EventArgs e)
        {
        Form3 Formular3 = new Form3();
        Formular3.Owner = this;
        Formular3.Show();
        Formular3.BringToFront();
        button1.Enabled=false;
        }

        Form3:

        private void button1_Click(object sender, EventArgs e)
        {
        ((Form2)this.Owner).button1.Enabled = true;
        Close();

        Comment

        Working...
        X