herbivore
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 bzw. Closing (mehr mein Geschmack).
Wenn man vorhat, Oberflächen- und Modellobjekte zu trennen, könnte folgender Thread noch ganz hilfreich sein:
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.
herbivore
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 scheiben! Und die allgemeine Beschreibung auf dein konkretes Problem zu übertragen, ist in meinen 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