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!
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
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
Hallo shadowjb,
du musst natürlich beim ersten Mal eine erstellen, aber eben nicht jedesmal.
herbivore
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
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
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