Form2's Minimize_Click() method sets its
DialogResult value. According to the "Remarks" section in the link, doing so hides forms that have been shown using the
ShowDialog method.
However, the hidden form should still be accessible if there is a reference to it.
[Edit]
Set a breakpoint onto the first line of code in Form1's Timer.Tick event handler.
Does it really not get called or does it, but doesn't perform the action you expect?
If it doesn't get called: Is there some code like
timer3.Tick -= WhateverMethod;
timer3.Stop();
timer3.Enabled = false;
timer3 = new Timer();
The first one unsubscribes your method from the event so it doesn't get called.
Lines 2 and 3 disable the timer altogether. So the event doesn't even fire.
Line 4 would set the 'timer3' reference to a new Timer object. Even though that should not intervene with the old object firing its event, it would be a "code smell" in my eyes (or nose) to inspect in more detail.
[/Edit]