public override void RemoveLogicalNode()
 {
     // Is the parent is a list, remove this node from the list
     if (LogicalParent is ObjectTreeNode)
     {
         ObjectTreeNode parent        = (ObjectTreeNode)LogicalParent;
         ObjectInfo     parentObjInfo = parent.ObjectInfo;
         // Tell the parent not to remove this node, only the object
         // since we are removing ourself
         if (typeof(IList).IsAssignableFrom(parentObjInfo.ObjType))
         {
             parent.RemoveObject(Obj, SKIP_REMOVE_NODE);
         }
     }
     // Is this is a control, remove it from the design
     // surface
     if (Obj != null &&
         Obj is Control)
     {
         ObjectBrowser.ImagePanel.RemoveControl((Control)Obj);
     }
     // Turn off any event logging
     SetEventLogging(false, !SHOW_PROBLEMS);
     base.RemoveLogicalNode();
 }