internal void ChildFormClosed(Form form) { FormWindowState closed_form_windowstate = form.WindowState; form.Visible = false; Controls.Remove(form); if (Controls.Count == 0) { ((MdiWindowManager)form.window_manager).RaiseDeactivate(); } else if (closed_form_windowstate == FormWindowState.Maximized) { Form current = (Form)Controls [0]; current.WindowState = FormWindowState.Maximized; ActivateChild(current); } if (Controls.Count == 0) { XplatUI.RequestNCRecalc(Parent.Handle); ParentForm.PerformLayout(); #if NET_2_0 // If we closed the last child, unmerge the menus. // If it's not the last child, the menu will be unmerged // when another child takes focus. MenuStrip parent_menu = form.MdiParent.MainMenuStrip; if (parent_menu != null) { if (parent_menu.IsCurrentlyMerged) { ToolStripManager.RevertMerge(parent_menu); } } #endif } SizeScrollBars(); SetParentText(false); form.Dispose(); }