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