none
Zugriff auf andere Fenster RRS feed

  • Frage

  • Hi Forum,

    ich habe ein Fenster, aus dem ich bis zu 3 andere Fenster starten kann (mdiparent). Die 3 Fenster sind einem PulDownMenue zur Auswahl gespeichert. Haben als nicht immer die gleichen Namen (z.b. Import,Export,Tabelle,Kst,Excel,Word...)

    Nun mache ich in den 3 Fenstern entsprechende Einträge in Grids, Checkboxen, Textboxen, ... Nachdem alle Einträge angepasst sind möcht ich diese über das eigentliche Startfenster abfragen und speichern.

    Wie kann ich auf die Grids, Tabellen und TextBoxen in den anderen Fenstern zugriefen ? Name der Fenster sind in einer Tabelle verfügbar.

     


    Gruß Roland
    Freitag, 3. Juni 2011 09:59

Antworten

  • Hallo Roland,

    wenn Du mit MDI Formularen arbeitest, so kannst Du auf die aktuell geöffneten Fenster
    über die Form.MdiChildren-Eigenschaft  zugreifen.
    Umgekehrt kann jedes Kindfenster über MdiParent seinen Besitzer erfahren.
    Mehr siehe u. a.: MDI-Anwendungen (Multiple Document Interface)

    Verwendest Du eigenständige Fenster ginge entsprechendes über die Application.OpenForms-Eigenschaft

    Da man dazu jeweils den Typ des Fensters genau kennen muss, ist das eher ein suboptimale Lösung,
    bei der man bei jeder Änderung an (mindestens) zwei Stellen ändern muss.

    Sinnvoller ist eine Benachrichtigung über Ereignisse, die die Fenster bei Eigenschaftsänderungen usw. versenden
    und auf die wiederum das Hauptformular oder andere interessierte Klassen reagieren können.
    So arbeiten die Windows Forms z. B. bei der Datenbindung auch.

    Gruß Elmar

    Montag, 6. Juni 2011 13:33

Alle Antworten

  • Was f+r ein Framework benutzt du? Windows Forms?

    Ich geh mal davon aus, das Du die Fenster selbst erzeugst?

    Dann hast Du doch die ganzen Window Objekte selbst in der Hand und kannst dir diese Objekte wegspeichern und nachher drauf zugreifen...

     

    Freitag, 3. Juni 2011 10:23
  • Hi,

    sind Windows Forms. Ein Anhaltspunkt wie man das anfängt wäre nicht schlecht.

     

     


    Gruß Roland
    Freitag, 3. Juni 2011 10:57
  • Hallo Roland,

    wenn Du mit MDI Formularen arbeitest, so kannst Du auf die aktuell geöffneten Fenster
    über die Form.MdiChildren-Eigenschaft  zugreifen.
    Umgekehrt kann jedes Kindfenster über MdiParent seinen Besitzer erfahren.
    Mehr siehe u. a.: MDI-Anwendungen (Multiple Document Interface)

    Verwendest Du eigenständige Fenster ginge entsprechendes über die Application.OpenForms-Eigenschaft

    Da man dazu jeweils den Typ des Fensters genau kennen muss, ist das eher ein suboptimale Lösung,
    bei der man bei jeder Änderung an (mindestens) zwei Stellen ändern muss.

    Sinnvoller ist eine Benachrichtigung über Ereignisse, die die Fenster bei Eigenschaftsänderungen usw. versenden
    und auf die wiederum das Hauptformular oder andere interessierte Klassen reagieren können.
    So arbeiten die Windows Forms z. B. bei der Datenbindung auch.

    Gruß Elmar

    Montag, 6. Juni 2011 13:33
  • Hallo Emlar,

    Danke.


    Gruß Roland
    Mittwoch, 8. Juni 2011 11:08