Entwickler-Ecke
WinForms - NotifyIcon - WinForm nur 1 mal öffnen
Raven280438 - Mo 26.09.11 10:38
Titel: NotifyIcon - WinForm nur 1 mal öffnen
Hi,
ich habe nach
Diesem [
http://dotnet-snippets.de/dns/vorlage-fuer-tray-notifyicon-anwendung-SID541.aspx] Code-Schnipsel ein NotifyIcon-Programm zusammengebaut.
Ausserdem hab ich ein WinForm (
Form1) welches ich bei einem Click auf ein MenuItem anzeigen möchte.
C#-Quelltext
1: 2: 3: 4:
| private static void OnClickOpen(Object sender, EventArgs e) { new Form1().Show(); } |
Wie bekomm ich es jetzt hin, dass wenn das Fenster schon geöffnet ist, das Fenster einfach nur in den Fordergrund geholt wird und nicht immer ein Neues geöffnet wird?
Die Klasse
Program ist ja static, da kann ich auch keine Member-Variable für Form1 nehmen.
Gruß
Th69 - Mo 26.09.11 11:09
Hallo Raven280438,
du kannst aber genauso eine statische Membervariable erstellen:
C#-Quelltext
1:
| static private Form1 myForm; |
Du müßtest dann beim Aufruf entsprechend auf 'null' prüfen.
Und dann müßtest du noch sicherstellen, daß entweder beim Schließen des Fensters (FormClosed-Ereignis) die Variable wieder zurückgesetzt wird, oder aber daß du nur das Fenster versteckst (Hide).
Raven280438 - Mo 26.09.11 11:16
Hi,
danke für die Antwort.
Aber wie bekomm ich das hin, dass beim Schließen das Form wieder auf null gesetzt wird?
this = null; im FormClosing geht ja nicht...
Gruß
Kha - Mo 26.09.11 11:50
Abonniere in der Program-Klasse FormClosed, denn in dessen Eventhandler hast du dann Zugriff auf myForm.
Raven280438 - Mo 26.09.11 11:58
Hi,
alles klar, habs hinbekommen ;)
Vielen Dank
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!