private string GetLayerDescription()
        {
            string s = "";

            MapWinGIS.Map map = _legend.Map;
            if (map != null)
            {
                txtComments.Text = map.get_LayerDescription(_layerHandle);
            }

            MapWinGIS.Extents ext = _shapefile.Extents;
            //string units = Globals.get_MapUnits();
            string units = "";
            string type  = _shapefile.ShapefileType.ToString().Substring(4).ToLower() + " shapefile";

            var layer = map.get_OgrLayer(_layerHandle);

            if (layer != null)
            {
                s += "Datasource type: OGR layer" + Environment.NewLine;
                s += "Driver name: " + layer.DriverName + Environment.NewLine;
                s += "Connection string: " + layer.GetConnectionString() + Environment.NewLine;
                s += "Layer type: " + layer.SourceType.ToString() + Environment.NewLine;
                s += "Name or query: " + layer.GetSourceQuery() + Environment.NewLine;
                s += "Support editing: " + layer.SupportsEditing[tkOgrSaveType.ostSaveAll] + Environment.NewLine;
                s += "Dynamic loading: " + layer.DynamicLoading + "\n";
            }
            else
            {
                s += "Datasource type: ESRI Shapefile" + Environment.NewLine;
            }

            s += "Type: " + type + Environment.NewLine +
                 "Number of shapes: " + _shapefile.NumShapes + Environment.NewLine +
                 "Selected: " + _shapefile.NumSelected + Environment.NewLine +
                 "Source: " + _shapefile.Filename + Environment.NewLine +
                 "Bounds X: " + String.Format("{0:F2}", ext.xMin) + " to " + String.Format("{0:F2}", ext.xMax) + units + Environment.NewLine +
                 "Bounds Y: " + String.Format("{0:F2}", ext.yMin) + " to " + String.Format("{0:F2}", ext.yMax) + units + Environment.NewLine +
                 "Projection: " + _shapefile.Projection;
            return(s);
        }