/// <summary>
        /// This handles the coloring aspects of un-selecting all the shapes in a layer
        /// </summary>
        public void Restore_Layer(int Layer)
        {
            IDictionaryEnumerator Enumerator;
            object ob = m_Map.get_GetObject(Layer);

            if (ob.GetType() != typeof(MapWinGIS.Shapefile))
            {
                return;
            }

            MapWinGIS.Shapefile sf = ob as MapWinGIS.Shapefile;
            if (sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POLYGON ||
                sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POLYGONM ||
                sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POLYGONZ)
            {
                Enumerator = m_OriginalFillColor[Layer].GetEnumerator();
                while (Enumerator.MoveNext())
                {
                    m_Map.set_ShapeFillColor(Layer, (int)Enumerator.Key, (uint)Enumerator.Value);
                }

                Enumerator = m_OriginalLineColor[Layer].GetEnumerator();
                while (Enumerator.MoveNext())
                {
                    m_Map.set_ShapeLineColor(Layer, (int)Enumerator.Key, (uint)Enumerator.Value);
                }
            }
            else if (sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POLYLINE ||
                     sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POLYLINEM ||
                     sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POLYLINEZ)
            {
                Enumerator = m_OriginalLineColor[Layer].GetEnumerator();
                while (Enumerator.MoveNext())
                {
                    m_Map.set_ShapeLineColor(Layer, (int)Enumerator.Key, (uint)Enumerator.Value);
                }
                Enumerator = m_OriginalThickness[Layer].GetEnumerator();
                while (Enumerator.MoveNext())
                {
                    m_Map.set_ShapeLineWidth(Layer, (int)Enumerator.Key, (float)Enumerator.Value);
                }
            }
            else if (sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POINT ||
                     sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POINTM ||
                     sf.ShapefileType == MapWinGIS.ShpfileType.SHP_POINTZ ||
                     sf.ShapefileType == MapWinGIS.ShpfileType.SHP_MULTIPOINT ||
                     sf.ShapefileType == MapWinGIS.ShpfileType.SHP_MULTIPOINTM ||
                     sf.ShapefileType == MapWinGIS.ShpfileType.SHP_MULTIPOINTZ)
            {
                Enumerator = m_OriginalThickness[Layer].GetEnumerator();
                while (Enumerator.MoveNext())
                {
                    m_Map.set_ShapeLineWidth(Layer, (int)Enumerator.Key, (float)Enumerator.Value);
                }
                Enumerator = m_OriginalPointColor[Layer].GetEnumerator();
                while (Enumerator.MoveNext())
                {
                    m_Map.set_ShapePointColor(Layer, (int)Enumerator.Key, (uint)Enumerator.Value);
                }
            }
        }