myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Knowledge Base » FAQ » [FAQ] Kommunikation von 2 Forms
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

[FAQ] Kommunikation von 2 Forms

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
hauptmann hauptmann ist männlich
myCSharp.de-Poweruser/ Experte

Dabei seit: 19.07.2003
Beiträge: 704
Herkunft: Österreich/Kärnten


hauptmann ist offline Füge hauptmann Deiner Kontaktliste hinzu

[FAQ] Kommunikation von 2 Forms

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Links:

 Kommunikation zwischen zwei Forms
 MVC (Model-View-Controller Pattern mit ASP.NET)

Der Thread  Wie von einer WIndow-Form auf die GUI-Elemente einer anderen Window-Form zugreifen? zeigt sehr schön, was man alles an Fehlern und schlechten Designansätzen vermeiden kann und sollte.

Und in  Vorüberlegung zur Form2Form-Kommunikation: Programm-Design überdenken wird die Frage behandelt: "Brauche ich wirklich ein GUI mit mehreren unabhängigen Forms?".
12.04.2005 17:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 9 Monate.
herbivore
myCSharp.de-Team (Admin)

images/avatars/avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 49.025
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin


herbivore ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

dies ist keineswegs der einzige Thread zu dem Thema - im Gegenteil. Kaum ein Thema wurde so oft und ausführlich besprochen, wie dieses. Es gibt auch Threads zu dem Thema, in denen Codebeispiele enthalten sind.

Gute Suchbegriffe für die Forensuche sind:

Form1 Form2

je nach Geschmack noch garniert mit ShowDialog (weniger mein Geschmack) oder Closed/FormClosed bzw. Closing/FormClosing (mehr mein Geschmack).

Wenn man vorhat, Oberflächen- und Modellobjekte zu trennen, was mittlerweile Standard ist, könnten folgende Threads ganz hilfreich sein:  [Artikel] Drei-Schichten-Architektur sowie  Zugriff auf Steuerelement aus Klasse, Codebeispiel in  Zugriff auf Steuerelement aus Klasse.

herbivore

PS: Hier noch ein Artikel auf codeproject.com zu dem Thema:  Passing Data Between Forms

PPS: Von thomas.at stammt die folgende, hilfreiche Visualisierung der unterschiedlichen Arten des Zugriffs, je nachdem in welche Richtung der Zugriff erfolgen soll.

  Form1                                              Form2
+-------+                                          +-------+
|       |   direkt über Properties und Methoden    |       |
|       |----------------------------------------->|       |
|       |                                          |       |
|       |                                          |       |
|       |   indirekt über Events                   |       |
|       |<-----------------------------------------|       |
+-------+                                          +-------+

Dazu noch folgende Hinweise:
  • Ein Form sollte nie auf die Internas eines anderen Forms zugreifen. Insbesondere sollte ein Form nie auf die Steuerelemente eines anderen Forms zugreifen. Stattdessen definiert man für die zu übertragenden Werte bzw. auszuführenden Aktionen öffentlichen Methoden oder Properties, über die der Zugriff erfolgt.
  • Form2 sollte nie auf Form1 zugreifen. Form2 sollte Form1 nicht mal kennen. Das ist auch nie nötig. Stattdessen verwendet man Events ( [FAQ] Eigenen Event definieren).
  • Wenn man entgegen dieser Regeln versucht, aus dem Unterforum auf new Hauptform () zuzugreifen, darf man sich nicht wundern, wenn das eigentliche Hauptform von den Änderungen in diesem neuen (unsichtbaren) Hauptform-Objekt nichts mitbekommt.
  • Wenn man diese Hinweise berücksichtigt, dann funktioniert der Datenaustausch in beide Richtungen auch dann, wenn Form2 in einem anderen Projekt B liegt, das vom Projekt A mit Form1 benutzt wird.
29.01.2006 20:11 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Programmierhans
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-1651.gif


Dabei seit: 05.04.2005
Beiträge: 4.192
Entwicklungsumgebung: VS / Mono (IOS/LINUX)
Herkunft: Zentralschweiz


Programmierhans ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Auch noch ein Link (mit Codebeispiel) zu diesem Thema

 Von Form2 auf Form1 zugreifen.
26.02.2006 14:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 2 Monate.
herbivore
myCSharp.de-Team (Admin)

images/avatars/avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 49.025
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin


herbivore ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Ratsuchender,

was tun, wenn dir alle diese Infos und auch die Forumssuche nach Form1 Form2 noch nicht geholfen hat?

Bitte mach keinen neuen Thread auf, denn:

In den hier genannten Threads und über die Forumssuche findest du alle Informationen, die ihr brauchst! Wir könnten in dem neuen Threads auch nichts anderes oder neues schreiben! Und die allgemeine Beschreibung auf dein konkretes Problem zu übertragen, ist in unseren Augen eben genau deine Aufgabe.

Wenn es mit deiner Herangehensweise nicht funktioniert, kann das auch daran liegen, dass deine Herangehensweise ungünstig oder ungeeignet ist. In diesem Fall solltest du dich besser auf einen der beschriebenen Ansätze einlassen.

Und wenn das alles noch nicht hilft, liegt es vermutlich daran, dass dir ein paar Grundlagen der objektorientierten oder der Windows-Programmierung fehlen. Diese Grundlagen eignest du dir am besten an, indem du ein gutes Buch durcharbeitest (siehe auch  [FAQ] Wie finde ich den Einstieg in C#? und  Buchempfehlungen). Ein Forum kann keine Einführung in die (Windows-)Programmierung ersetzen und auch nicht leisten.

In diesem Sinne viel Erfolg!

herbivore
26.04.2006 09:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 4 Jahre.
Programmierhans
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-1651.gif


Dabei seit: 05.04.2005
Beiträge: 4.192
Entwicklungsumgebung: VS / Mono (IOS/LINUX)
Herkunft: Zentralschweiz


Programmierhans ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hier noch ein typisches Problem:

 Form verliert den Focus und springt in den Hintergrund...

Nachtrag:

Wenn mehrere Forms gleichzeitig bearbeitbar sein sollen, so müssen die Forms NICHT Modal angezeigt werden. (Show statt ShowDialog)... und man kann sich dann in FormClosing oder FormClosed Event einklinken um allfällige Werte eines sich schliessenden Forms wieder auf das aufrufende Form zu übertragen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Programmierhans am 25.09.2014 14:06.

08.09.2010 17:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 9 Jahre.
Der letzte Beitrag ist älter als 4 Jahre.
Antwort erstellen


© Copyright 2003-2014 myCSharp.de-Team. Alle Rechte vorbehalten. 31.10.2014 09:59