private void HandleFormClosed(object sender, FormClosedEventArgs e) { //Remove from the dictionaries TrackShackWindow window = (TrackShackWindow)sender; if (window.Track == null) { SingleForms.Remove(window.WindowType); } else { if (TrackForms.ContainsKey(window.Track)) { TrackForms[window.Track].Remove(window.WindowType); } } }
public void ShowSingleForm(TrackShackWindowType type) { if (SingleForms.ContainsKey(type)) { TrackShackWindow form = SingleForms[type]; if (form.WindowState == FormWindowState.Minimized) { ShowWindow(form.Handle, SW_RESTORE); } form.BringToFront(); } else { TrackShackWindow form = GenerateSingleForm(type); SingleForms.Add(type, form); form.MdiParent = _parentForm; form.FormClosing += HandleFormClosing; form.FormClosed += HandleFormClosed; form.Show(); } }