Select to view content in your preferred language

layer names to text box using C#

2605
3
06-14-2014 11:47 PM
ababreddy
New Contributor
Hi, I am trying get layer names to text  box but i am not getting result.Here is my code
Can any one help

IMxDocument imx = m_application.Document as IMxDocument;
        
            IMap map = imx.FocusMap;
            StreamWriter sw = new StreamWriter("C:\\temp\\layer.txt");
            ILayer layer =null;
           // int lcount = map.LayerCount;
            IEnumLayer player = map.get_Layers(null, false);
            for (int i=0;i<map.LayerCount;i++)
           layer = player.Next();

            while (player!=null)
          
            {

                sw.WriteLine(layer.Name);
                layer = player.Next();
            }
           
        }
0 Kudos
3 Replies
ModyBuchbinder
Esri Regular Contributor
Hi

Try something like that:

ILayer layer =null;
IEnumLayer player = map.get_Layers(null, false);

while ((layer = player.next())!=null) sw.WriteLine(layer.Name);
0 Kudos
AhmedEl-Sisi
Occasional Contributor III
Hi, I am trying get layer names to text  box but i am not getting result.Here is my code
Can any one help

IMxDocument imx = m_application.Document as IMxDocument;
        
            IMap map = imx.FocusMap;
            StreamWriter sw = new StreamWriter("C:\\temp\\layer.txt"); //Use StreamWriter inside Using statement
            ILayer layer =null;
           // int lcount = map.LayerCount;
            IEnumLayer player = map.get_Layers(null, false);
            for (int i=0;i<map.LayerCount;i++) //Don't loop here
           layer = player.Next();
            //You should check layer object not player
            while (player!=null)
          
            {

                sw.WriteLine(layer.Name);
                layer = player.Next();
            }
           
        }


Try this, I have also explained what's wrong with your code:
 
            IMxDocument imx = ArcMap.Application.Document as IMxDocument;

            IMap map = imx.FocusMap;
            ILayer layer = null;
            //Get Layers
            IEnumLayer player = map.get_Layers(null, false);

            layer = player.Next();
            //Write Layers To Stream
            using (StreamWriter writer = new StreamWriter("C:\\temp\\layer.txt", true))
            {
                while (layer != null)
                {
                    writer.WriteLine(layer.Name);
                    layer = player.Next();
                }
            }


Regards,
0 Kudos
ababreddy
New Contributor

Thanks Ahmed

0 Kudos