Okay firstly I just started C# so I’m not exactly the most skilled programmer out there. Okay so here’s my problem that may seem stupid to you guys 😉
I have a simple enough app that a friend asked me to do. So far I have managed with a bit of Google but I’m stuck with this. The app runs fine and minimizes to the system tray and maximizes from the system tray which is good. However, when I open a second form from that application it creates another icon in the system tray and starts duplicating every time I open another form. So eventually I have lots of icons and all of them are seperate instances of the main form. System Tray events
private void notifyIcon_systemTray_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (FormWindowState.Minimized == WindowState)
{
Show();
WindowState = FormWindowState.Normal;
}
}
private void CronNecessityForm_Resize(object sender, EventArgs e)
{
notifyIcon_systemTray.Visible = true;
if (FormWindowState.Minimized == WindowState)
Hide();
}
private void restoreContextMenuItem_Click(object sender, EventArgs e)
{
Show();
WindowState = FormWindowState.Normal;
}
To open the Form:
private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
{
CronPreferences.formPreferences CronPreferences = new CronPreferences.formPreferences();
CronPreferences.Show();
}
Close it:
private void button2_Click(object sender, EventArgs e)
{
this.Hide();
}
How can I have all Forms map to the same icon in the System Tray?
You will need a single global tray icon that they all access. Do this by using a static variable that stays the same throughout different instances of the class.
Then, if you want to: