I’m super new to C# and this is my third question here regarding it.
I’m making an app which can be minimized to the system tray. I have two forms named Form1 and Form2. What I have done so far is:
In Form1, I have a button which is showing the Form2 using this code:
this.Hide();
Form2 form2 = new Form2();
form2.Show();
The Form2 has a button which is hiding it, using this code:
this.Hide();
Now, I have the tray icon on the task bar. The tray icon has a ContexMenuStrip, and there is an option named show using this code:
Form1 form1 = new Form1();
form1.Show();
The problem is that when I click on it, a second tray icon is appearing on the taskbar. Both tray icons have the same menu and both are working. If I click on show again another window with Form1 pops up, and there are three tray icons, and so on….
Can someone help me?
It’s because you are creating a new Form1 everytime.
You don’t want to create a new Form1, you want to show the old one. Give Form2 a reference to your first form1 (call it theMainform1 for example). And then instead of
You want to do
So you would have: