Öffnen von Form-Instanzen in C#

Oftmals sind in einer Windows-Formular-Instanz natürlich erheblich mehr Daten als nur ein einzelner Satz enthalten, die aus Benutzereingaben oder anderen Vorgängen stammen. Wie kann man also zu der aktuellen Instanz von Form1 zurückkehren und diese Daten beibehalten?

Dazu ist der Zugriff auf eine Variable erforderlich, die auf die spezifische Instanz der Form1 verweist, die wir anzeigen möchten. Eine Möglichkeit hierfür besteht in der Verwendung einer öffentlichen, statischen Variable mit einem Verweis auf die Instanz. (Der Unterschied zwischen statischen Klassen-Membern und Instanz-Membern wie Variablen besteht darin, dass statische Member nicht instantiiert werden müssen.)
Deklarieren Sie hierzu direkt unter der Deklaration der Form1-Klasse eine öffentliche, statische Variable vom Typ Form1. Ich habe die Variable staticVar genannt:

Es gibt übrigens keinen Grund, diese Variable in das Form1-Modul zu setzen. Solange sie öffentlich und statisch ist, kann sie an jede beliebige Stelle gesetzt werden. Wenn Sie mehrere öffentliche, statische Variablen verwenden, bietet es sich an, in einem separaten Klassenmodul eine eigene Klasse für die Variablen einzurichten. Beachten Sie auch, dass ich die Variable unter Verwendung des Schlüsselworts null initialisiert habe, so dass sie ausdrücklich keinen Formular-Verweis enthält.

Wenn Sie die Form2-Instanz anzeigen möchten, verwenden Sie das Schlüsselwort this, um einen Verweis auf die aktuelle Form1-Instanz in der Variablen staticVar zu speichern:

Hier der vollständige überarbeitete Code für das Klick-Ereignis, mit dem die Instanz von Form2 angezeigt wird:

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Podcast: „Die Zero Trust-Architektur ist gekommen, um zu bleiben“

Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…

5 Tagen ago

Google schließt weitere Zero-Day-Lücke in Chrome

Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…

5 Tagen ago

Hacker greifen Zero-Day-Lücke in Windows mit Banking-Trojaner QakBot an

Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…

5 Tagen ago

Adobe schließt neun kritische Lücken in Reader und Acrobat

Das jüngste Update bringt insgesamt zwölf Fixes. Schadcode lässt sich unter Umständen ohne Interaktion mit…

5 Tagen ago

Fabrikautomatisierung: Siemens integriert SPS-Ebene

Eine softwarebasierte Workstation soll es Ingenieuren erlauben, sämtliche Steuerungen zentral zu verwalten. Pilotkunde ist Ford.

5 Tagen ago

Ebury-Botnet infiziert 400.000 Linux-Server weltweit

Kryptodiebstahl und finanzieller Gewinn sind laut ESET-Forschungsbericht die vorrangigen neuen Ziele.

6 Tagen ago