Laden...

NotifyIcon und Aufruf mehrerer Forms

Erstellt von shadowjb vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.789 Views
S
shadowjb Themenstarter:in
44 Beiträge seit 2006
vor 17 Jahren
NotifyIcon und Aufruf mehrerer Forms

hallo zusammen

ich habe folgendes Problem
ich habe eine windows-anwendung mit mehreren forms.
der ersten form ist ein notifyIcon zugeordnet und dieses hat ein contextMenü.
Über das ContextMenü soll man jedes einzelne Fenster anzeigen können. Beim ersten Fenster kein Problem. Um Mehrere Instanzen zu vermeiden arbeite ich mit boolschen Werten. Und das funzt auch:


 private void toolStripMenuItem_EventRestore_Click(object sender, EventArgs e)
        {
            if (EventTray == false)
            {
                toolStripMenuItem_EventRestore.Checked = false;
                this.Opacity = 1.0;
                timer_EventFadeOut.Start(); 
                //Hide() Wird Innerhalb dieses Timers ausgeführt
                EventTray = true;
            }
            else
            {
                toolStripMenuItem_EventRestore.Checked = true;    
                this.Opacity = .00;
                this.Show();
                timer_EventFadeIn.Start();               
                EventTray = false;
            }
        }

Bei dem zweiten Fenster jedoch nicht. das lässt sich anzeigen aber NICHT mehr über das tray ausblenden:


        public void toolStripMenuItem_AppRestore_Click(object sender, EventArgs e)
        {
            AppForm App = new AppForm();
            if (AppTray == false)
            {
                toolStripMenuItem_AppRestore.Checked = false;
                App.Opacity = 1.0;
                App.timer_AppFadeOut.Start();
                //Hide() Wird Innerhalb dieses Timers ausgeführt
                AppTray = true;
            }
            else
            {
                toolStripMenuItem_AppRestore.Checked = true;
                App.Opacity = .00;
                App.Show();
                App.timer_AppFadeIn.Start();
                AppTray = false;
            }
        }

Die Timer sorgen für einen schicken FadeIn und FadeOut Effekt. Das funzt bei EventForm (erstes Fenster) einwandfrei. Bei AppForm (zweites Fenster) funzt nur das Einfaden über das Tray.

Es muss so sein, das ich AppForm über das Tray anzeigen und verschwinden lassen muss unter verwendung des Fade-Effekts.

Danke für alle Antworten!

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo shadowjb,

in toolStripMenuItem_AppRestore_Click erzeugst du jedes mal eine neue Instanz von AppForm. Du musst natürlich beim Ausblenden (und vermutlich auch beim erneuten Einblenden) die bestehende verwenden.

Anonsten siehe Anfängerfehler == true / == false

herbivore

S
shadowjb Themenstarter:in
44 Beiträge seit 2006
vor 17 Jahren

Aber wenn ich keine neue Instanz von AppForm erstelle kann ich doch nicht Show oder Hide für AppForm machen!?

@herbivore: Dake für schnelle Antwort

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo shadowjb,

du musst natürlich beim ersten Mal eine erstellen, aber eben nicht jedesmal.

herbivore

S
shadowjb Themenstarter:in
44 Beiträge seit 2006
vor 17 Jahren

wo muss denn dann new AppForm() ganau hin

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo shadowjb,

vermutlich da, wo es jetzt steht, aber halt mit einer if-Abfrage, dass es nur beim ersten Mal passiert.

Das habe ich gerne: Wilde Einbelendeffekte programmieren, aber die Grundlagen nicht beherrschen. 🙂

herbivore

S
shadowjb Themenstarter:in
44 Beiträge seit 2006
vor 17 Jahren

Äh ne Idee wie diese if-Verzweigung für new aussehen müsste?

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo shadowjb,

ja, klar. Aber wie du vielleicht merkst, will ich es nicht sagen, weil ich finde, dass du dir solche Grundlagen selbst aneignen musst. Und dein Frage ist sowas von grundlegend, gundlegender geht es fast gar nicht. Wenn jeder Anfänger so grundlegende Fragen im Forum stellen würde, statt sich das Wissen selbst anzueignen, hätten wir bestimmt 10mal so viele Fragen, was keine nützen würde, nicht mal den Anfängern, weil dann viele Fragen unbeantwortet blieben.

herbivore

476 Beiträge seit 2004
vor 17 Jahren

hallo shadowjb,

bevor du mit fremden Code einfügen beginnst, würde ich Dir lieber vorschlagen noch etwas Grundlagenforschung zu betreiben...

schaul mal hier:
guide to C#
Visual C# 2005

nichts für ungut...
-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de