Irgendwie schreibst du wirr ...
Das funktioniert nur, wenn die Ausgangs-Form die Ziel-Form kennt.
Je nachdem, was das für ein Anwendungsfall ist, gibt es verschiedene mehr oder weniger sinnvolle Wege.
Hast du z.B. in der Form irgendwelche Auswahlmöglichkeiten, dann würde ich in der selben Form eine Eigenschaft anlegen, die die aktuell ausgewählte Option nach außen hin preis gibt.
Die Form, die das nun wissen möchte, muss das Objekt deiner Auswahl-Form natürlich kennen und das sollte auch nicht weiter schwer sein, weil du die einfach als globales Feld ablegst - in der Form selber und private natürlich.
Wenn du dann die Auswahl haben möchtest, nimmst du dieses Feld, wo die Auswahl-Form drin liegt und guckst nach, was in der vorher angelegten Auswahl-Eigenschaft steht.
Vielleicht solltest du auch nochmal überlegen, was genau eine Form ist.
Eine Form ist nämlich nichts anderes, als eine ganz normale Klasse, die über die Form-Basis-Klasse eine reihe Render-Fähigkeiten mit gegeben bekommt und so dargestellt werden kann - einfach ausgedrückt, korrigiert mich, wenn ich was durcheinander haue.
Auf jeden Fall erstellst du mit "new Form1();" ein Object dieser Klasse wie jedes Andere auch und dieses Objekt ist für sich eigenständig funktionsfähig und hat nix mit den anderen Objekten dieser Klasse zu tun (Außer natürlich die Klasse), wenn du das nicht selber direkt fest legst.
Du kannst zwischen zwei Fenstern also genauso kommunizieren wie zwischen jedem anderen Objekt auch.
Es ist daher nicht wunderlich, dass du ein neues Fenster bekommst und das Vorherige unangetastet bleibt.
Was mich mehr wundert, ist, dass die neue Form direkt angezeigt wird, sollte die nicht auf den Aufruf von "Show" oder "ShowDialog" warten?
