/// <summary> Remove child control from parent, but do not dispose of it or its children, and maintain all child relationship to it. Control can be reattached</summary> public static void Detach(GLBaseControl child) { if (child.Parent != null) // if attached { GLBaseControl parent = child.Parent; parent.RemoveControl(child, false, false); parent.InvalidateLayout(null); child.NeedRedraw = true; // next time, it will need to be drawn } }
/// <summary> Remove child control from parent, and disposes of it and all its children. Control is now not reattachable.</summary> public static void Remove(GLBaseControl child) { if (child.Parent != null) // if attached { GLBaseControl parent = child.Parent; parent.RemoveControl(child, true, true); parent.InvalidateLayout(null); // invalidate parent, and indicate null so it knows the child has been removed child.NeedRedraw = true; // next time, it will need to be drawn if reused } }