Wie kann ich das in C# machen ?

Hallo. Ich bin neu hier und wollte folgendes fragen. Erstmal zu Info : ich habe ein Programm, in dem man etwas eingeben. Nun kann ich eine Vorschau öffnen, in der dies alles zusammen gefasst ist. Wenn ich in der Vorschau nun etwas ändern möchte, soll dies auch auf dem Standardprogramm geschehen. Ich kann das zwar öffnen (Form1 auf = New Form1) da ist aber das Problem, dass dieses Fenster nun neu geöffnet wird. Wie kann ich das machen ?

Ich verwende Microsoft Visual c# 2010 Epress.
Lg

Ich bin kein C#-er, kann aber trotzdem etwas zur Lösung beisteuern.

Ich bin der Meinung, dass man in einer Vorschau nichts ändern können sollte. Eine Vorschau dient nur eben dazu… …normalerweise.

Wenn du trotzdem ein anderes Verhalten haben möchtest, musst du mit Referenz-Variablen arbeiten. Du brauchst also quasi eine Verknüpfung zu den Variablen im “Standardprogramm”, wie du es nennst.
Und das geht in Java mit Referenz-Übergabe und dürfte in C# nicht anders sein. Die beiden ähneln sich auch da sehr.

Normalerweise kann man dieses Verhalten wunderbar mit dem MVC-Architekturmuster abbilden. Da gibt es ein Model (M) zur Datenhaltung, eine oder mehrere Views (V) zur Präsentation der Daten und einen Controller, der die ganze Sache steuert.
Der Controller meldet die View beim Model als Listener an und reagiert auf die Benutzeraktionen (Events) in der View.

Du willst also zwei Forms mit einander sprechen lassen. Dazu gibt’s hier einiges zu lesen: MyCsharp-FAQ: Kommunikation von zwei Forms.

Praktisch musst du in deiner MainForm-Methoden zur Verfügung stellen um etwas zu ändern. Diese ruft dann Form1 auf. Oder du machst das wie es L-ectron-X Kommunikation von zwei Forms vorschlägt und lagerst die Änderungs-Logik in eine eigene Klasse aus. Diese kann dann sowohl von Form1 wie auch MainForm aufgerufen werden. Gleichzeitig bietet diese Änderungs-Klasse Events an die deine Forms abonnieren können um über Änderungen verständigt zu werden.

MVVM dürfte hier helfen.

Arbeitest du wirklich mit dem alten Forms oder doch mit WPF ?