<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: LAST CALL 4 ADD LAYERS TO ARCMAP FROM LISTBOX in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464396#M12590</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Mr. Donahue,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Thank you, for taking the time to examine the script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Ques. #1: pGxFile = pGxLayer Should take the layer (.lyr) files and create them into objects. This line of code and others were taken from the "Getting to Know ArcObjects (VBA)" pp. 303 which initially was provided as Set pGxFile = pGxLayer. The "set" command is of VBA language and was taken out for VB.Net.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Ques. #2 itemList.Add(s) creates an list/array of strings. This snippet was derived from Mr. Clemmons suggestions from an older post. I tried using "itemlist" and "s" as variables to extract the desired results, but keep getting the first layer (.lyr) only. This line of code probably could be taken out and would still partially work, but wanted to keep it for possible manipulation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My background: I have experience in AML, Avenue, some VBA, some VB6, and now I am having to figure out VB.net 2010 and the new Add-in module. I don't get much time to write code, in fact, it has been almost two years since I have attempted coding and it becomes difficult to get back to speed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll further investigate your pinpoints and would appreciate any suggestions on being able to select multiple layers from an listbox and add them to the ArcMap view document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; John Hanson &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Tell me what these lines of code are doing:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile

pGxLayer = New GxLayer
pGxFile = pGxLayer&lt;SPAN style="color:#0000ff;"&gt;&amp;nbsp; ' In your words, what happens right here?&lt;/SPAN&gt; 
&lt;/PRE&gt;&lt;BR /&gt;If you say: I'm setting pGxFile equal to pGxLayer, fine, but what does that mean?&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
For Each s As String In ListBox1.SelectedItems
&amp;nbsp; itemList.Add(s) ' &lt;SPAN style="color:#0000ff;"&gt;what is this line for?&lt;/SPAN&gt;
&amp;nbsp; pGxFile.Path = s 
&amp;nbsp; pMap.AddLayer(pGxLayer.Layer)
Next
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;In your code sample, is pGxLayer and pGxFile referring to the same object?&amp;nbsp; You change the pGxFile path in each iteration of the For loop, but you're adding pGxLayer each time.&amp;nbsp; How is pGxLayer related to pGxFile changing the path?&amp;nbsp; Do you need to set something to null, or maybe create a new object reference?&lt;BR /&gt;&lt;BR /&gt;I think it is very hard for people who learn VB to make the switch to C#&amp;nbsp; and Java mostly because VB hides alot of the Objectness of Object&amp;nbsp; Oriented programming, and for those of us who mainly work in those&amp;nbsp; languages, looking back at VB is also very hard.&lt;BR /&gt;&lt;BR /&gt;What I don't like about VB is the way object references are handled for&amp;nbsp; you and the fact that the the object references are assigned with the&amp;nbsp; same operator that you use for equality testing, and the lack of wording&amp;nbsp; to distinguish between methods and properties, leaves me wondering why&amp;nbsp; anyone continues to use this language.&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 20:37:44 GMT</pubDate>
    <dc:creator>JohnHanson</dc:creator>
    <dc:date>2021-12-11T20:37:44Z</dc:date>
    <item>
      <title>LAST CALL 4 ADD LAYERS TO ARCMAP FROM LISTBOX</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464392#M12586</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am creating an Add-in with ArcGIS 10.1 using MS Visual Studio 2010 VB.net&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; I have a button on my toolbar that opens a form (frmFieldDescription) with a listbox (ListBox1) that is populated with a list of .lyrs from a directory (G:\PPACG\)......this works fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PROBLEM:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; On the form I created another button (Button1_Click).....I've been trying to get this button to load the selected .lyr(s) from the listbox to be loaded onto ArcMap's View Document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Currently, with the code I have under (Button1_Click) works but it will it will only add the first .lyr&amp;nbsp; For example, if I select four different layers it will only load the first selected layer (i.e. airports) four times into the ArcMap View Document.&amp;nbsp; I tried using &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MsgBox(s.ToString, , "Oops") and it returns the correct four different layers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;QUESTION:&amp;nbsp; How can I iterate thru "s" to bring in the correct four different layers into ArcMap?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;See the code below for Button1_Click:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.SystemUI&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports System.Windows.Forms&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports System&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.esriSystem&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.Framework&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.Carto&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.ArcMapUI&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.Catalog&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.Geodatabase&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports ESRI.ArcGIS.DataSourcesFile&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imports System.Windows.Forms.ListBox&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Public Class frmFieldDescription&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub frmFieldDescription_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim directoryInfo As IO.DirectoryInfo = New IO.DirectoryInfo("G:\PPACG\CADASTRAL_LYRS")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not (directoryInfo Is Nothing) Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim fileInfo As IO.FileInfo() = directoryInfo.GetFiles&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Int32&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To fileInfo.GetUpperBound(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListBox1.Items.Add(fileInfo(i).FullName)&amp;nbsp;&amp;nbsp; 'JH Changeback to Name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''''''''''''''''''''''''''MsgBox(Mychoice.ToString, , "Oops")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMxDoc As IMxDocument&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMap As IMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMxDoc = My.ArcMap.Document&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMap = pMxDoc.FocusMap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pGxFile As IGxFile&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pGxLayer As IGxLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGxLayer = New GxLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGxFile = pGxLayer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim itemList As New List(Of String)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Dim Mychoice As Integer&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each s As String In ListBox1.SelectedItems&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemList.Add(s)&amp;nbsp;&amp;nbsp; '''''itemlist does not have need return&amp;nbsp;&amp;nbsp; "s" does return the correct string&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ''''' MsgBox(s.ToString, , "Oops")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGxFile.Path = s&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMap.AddLayer(pGxLayer.Layer)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Dim itemArr() As String = itemList.ToArray&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'For Each s As String In itemArr&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pGxFile.Path = s&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' pMap.AddLayer(pGxLayer.Layer)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''''''''''''''''''''''' System.Windows.Forms.MessageBox.Show(s)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Next&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End Class&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jan 2014 21:44:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464392#M12586</guid>
      <dc:creator>JohnHanson</dc:creator>
      <dc:date>2014-01-15T21:44:48Z</dc:date>
    </item>
    <item>
      <title>Re: LAST CALL 4 ADD LAYERS TO ARCMAP FROM LISTBOX</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464393#M12587</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Tell me what these lines of code are doing:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile

pGxLayer = New GxLayer
pGxFile = pGxLayer&lt;SPAN style="color:#0000ff;"&gt;&amp;nbsp; ' In your words, what happens right here?&lt;/SPAN&gt; 
&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;If you say: I'm setting pGxFile equal to pGxLayer, fine, but what does that mean?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
For Each s As String In ListBox1.SelectedItems
&amp;nbsp; itemList.Add(s) ' &lt;SPAN style="color:#0000ff;"&gt;what is this line for?&lt;/SPAN&gt;
&amp;nbsp; pGxFile.Path = s 
&amp;nbsp; pMap.AddLayer(pGxLayer.Layer)
Next
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In your code sample, is pGxLayer and pGxFile referring to the same object?&amp;nbsp; You change the pGxFile path in each iteration of the For loop, but you're adding pGxLayer each time.&amp;nbsp; How is pGxLayer related to pGxFile changing the path?&amp;nbsp; Do you need to set something to null, or maybe create a new object reference?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think it is very hard for people who learn VB to make the switch to C#&amp;nbsp; and Java mostly because VB hides alot of the Objectness of Object&amp;nbsp; Oriented programming, and for those of us who mainly work in those&amp;nbsp; languages, looking back at VB is also very hard.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I don't like about VB is the way object references are handled for&amp;nbsp; you and the fact that the the object references are assigned with the&amp;nbsp; same operator that you use for equality testing, and the lack of wording&amp;nbsp; to distinguish between methods and properties, leaves me wondering why&amp;nbsp; anyone continues to use this language.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:37:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464393#M12587</guid>
      <dc:creator>LeoDonahue</dc:creator>
      <dc:date>2021-12-11T20:37:41Z</dc:date>
    </item>
    <item>
      <title>Re: LAST CALL 4 ADD LAYERS TO ARCMAP FROM LISTBOX</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464394#M12588</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I am creating an Add-in with ArcGIS 10.1 using MS Visual Studio 2010 VB.net&lt;BR /&gt;&lt;BR /&gt; I have a button on my toolbar that opens a form (frmFieldDescription) with a listbox (ListBox1) that is populated with a list of .lyrs from a directory (G:\PPACG\)......this works fine.&lt;BR /&gt;&lt;BR /&gt;PROBLEM:&lt;BR /&gt;&lt;BR /&gt; On the form I created another button (Button1_Click).....I've been trying to get this button to load the selected .lyr(s) from the listbox to be loaded onto ArcMap's View Document.&lt;BR /&gt;&lt;BR /&gt;Currently, with the code I have under (Button1_Click) works but it will it will only add the first .lyr&amp;nbsp; For example, if I select four different layers it will only load the first selected layer (i.e. airports) four times into the ArcMap View Document.&amp;nbsp; I tried using &lt;BR /&gt;MsgBox(s.ToString, , "Oops") and it returns the correct four different layers.&lt;BR /&gt;&lt;BR /&gt;QUESTION:&amp;nbsp; How can I iterate thru "s" to bring in the correct four different layers into ArcMap?&lt;BR /&gt;&lt;BR /&gt;See the code below for Button1_Click:&lt;BR /&gt;&lt;BR /&gt;Imports ESRI.ArcGIS.SystemUI&lt;BR /&gt;Imports System.Windows.Forms&lt;BR /&gt;Imports System&lt;BR /&gt;Imports ESRI.ArcGIS.esriSystem&lt;BR /&gt;Imports ESRI.ArcGIS.Framework&lt;BR /&gt;Imports ESRI.ArcGIS.Carto&lt;BR /&gt;Imports ESRI.ArcGIS.ArcMapUI&lt;BR /&gt;Imports ESRI.ArcGIS.Catalog&lt;BR /&gt;Imports ESRI.ArcGIS.Geodatabase&lt;BR /&gt;Imports ESRI.ArcGIS.DataSourcesFile&lt;BR /&gt;Imports System.Windows.Forms.ListBox&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Public Class frmFieldDescription&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub frmFieldDescription_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim directoryInfo As IO.DirectoryInfo = New IO.DirectoryInfo("G:\PPACG\CADASTRAL_LYRS")&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not (directoryInfo Is Nothing) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim fileInfo As IO.FileInfo() = directoryInfo.GetFiles&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim i As Int32&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For i = 0 To fileInfo.GetUpperBound(0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListBox1.Items.Add(fileInfo(i).FullName)&amp;nbsp;&amp;nbsp; 'JH Changeback to Name&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next i&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''''''''''''''''''''''''''MsgBox(Mychoice.ToString, , "Oops")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMxDoc As IMxDocument&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pMap As IMap&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMxDoc = My.ArcMap.Document&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMap = pMxDoc.FocusMap&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pGxFile As IGxFile&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pGxLayer As IGxLayer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGxLayer = New GxLayer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGxFile = pGxLayer&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim itemList As New List(Of String)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Dim Mychoice As Integer&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each s As String In ListBox1.SelectedItems&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; itemList.Add(s)&amp;nbsp;&amp;nbsp; '''''itemlist does not have need return&amp;nbsp;&amp;nbsp; "s" does return the correct string&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ''''' MsgBox(s.ToString, , "Oops")&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pGxFile.Path = s&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pMap.AddLayer(pGxLayer.Layer)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Dim itemArr() As String = itemList.ToArray&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'For Each s As String In itemArr&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pGxFile.Path = s&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' pMap.AddLayer(pGxLayer.Layer)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '''''''''''''''''''''''' System.Windows.Forms.MessageBox.Show(s)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Next&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;BR /&gt;End Class&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I would suggest using ILayerFile to open the layer file.&amp;nbsp; You're code is using an older and less intuitive method of working with layer files that was necessary before ILayerFile was added to the object model.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jan 2014 12:15:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464394#M12588</guid>
      <dc:creator>NeilClemmons</dc:creator>
      <dc:date>2014-01-16T12:15:07Z</dc:date>
    </item>
    <item>
      <title>Re: LAST CALL 4 ADD LAYERS TO ARCMAP FROM LISTBOX</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464395#M12589</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Mr. Donahue,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you, for taking the time to examine the script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Ques. #1:&amp;nbsp; pGxFile = pGxLayer&amp;nbsp; Should take the layer (.lyr) files and create them into objects.&amp;nbsp; This line of code and others were taken from the "Getting to Know ArcObjects (VBA)" pp. 303&amp;nbsp; which initially was provided as Set pGxFile = pGxLayer.&amp;nbsp; The "set" command is of VBA language and was taken out for VB.Net.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ques. #2&amp;nbsp; itemList.Add(s)&amp;nbsp; creates an list/array of strings.&amp;nbsp; This snippet was derived from Mr. Clemmons suggestions from an older post.&amp;nbsp; I tried using "itemlist" and "s" as variables to extract the desired results, but keep getting the first layer (.lyr) only.&amp;nbsp; This line of code probably could be taken out and would still partially work, but wanted to keep it for possible manipulation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mr. Clemmons, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You probably recognize some of the code from an older post (&lt;/SPAN&gt;&lt;A href="http://forums.esri.com/Thread.asp?c=93&amp;amp;f=1170&amp;amp;t=291576"&gt;http://forums.esri.com/Thread.asp?c=93&amp;amp;f=1170&amp;amp;t=291576&lt;/A&gt;&lt;SPAN&gt;) you provided for Mr. Shearer who had the same problem of getting only the first layer.&amp;nbsp; I never found the solution, or I was just unable figure it out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My background:&amp;nbsp; I have experience in AML, Avenue, some VBA, some VB6, and now I am having to figure out VB.net 2010 and the new Add-in module.&amp;nbsp; I don't get much time to write code, in fact, it has been almost two years since I have attempted coding and it becomes difficult to get back to speed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To both gentlemen:&amp;nbsp; I'll further investigate your pinpoints and would appreciate any suggestions on being able to select multiple layers from an listbox and add them to the ArcMap view document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;John Hanson&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jan 2014 14:38:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464395#M12589</guid>
      <dc:creator>JohnHanson</dc:creator>
      <dc:date>2014-01-16T14:38:59Z</dc:date>
    </item>
    <item>
      <title>Re: LAST CALL 4 ADD LAYERS TO ARCMAP FROM LISTBOX</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464396#M12590</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Mr. Donahue,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Thank you, for taking the time to examine the script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Ques. #1: pGxFile = pGxLayer Should take the layer (.lyr) files and create them into objects. This line of code and others were taken from the "Getting to Know ArcObjects (VBA)" pp. 303 which initially was provided as Set pGxFile = pGxLayer. The "set" command is of VBA language and was taken out for VB.Net.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Ques. #2 itemList.Add(s) creates an list/array of strings. This snippet was derived from Mr. Clemmons suggestions from an older post. I tried using "itemlist" and "s" as variables to extract the desired results, but keep getting the first layer (.lyr) only. This line of code probably could be taken out and would still partially work, but wanted to keep it for possible manipulation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My background: I have experience in AML, Avenue, some VBA, some VB6, and now I am having to figure out VB.net 2010 and the new Add-in module. I don't get much time to write code, in fact, it has been almost two years since I have attempted coding and it becomes difficult to get back to speed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll further investigate your pinpoints and would appreciate any suggestions on being able to select multiple layers from an listbox and add them to the ArcMap view document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; John Hanson &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Tell me what these lines of code are doing:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile

pGxLayer = New GxLayer
pGxFile = pGxLayer&lt;SPAN style="color:#0000ff;"&gt;&amp;nbsp; ' In your words, what happens right here?&lt;/SPAN&gt; 
&lt;/PRE&gt;&lt;BR /&gt;If you say: I'm setting pGxFile equal to pGxLayer, fine, but what does that mean?&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
For Each s As String In ListBox1.SelectedItems
&amp;nbsp; itemList.Add(s) ' &lt;SPAN style="color:#0000ff;"&gt;what is this line for?&lt;/SPAN&gt;
&amp;nbsp; pGxFile.Path = s 
&amp;nbsp; pMap.AddLayer(pGxLayer.Layer)
Next
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;In your code sample, is pGxLayer and pGxFile referring to the same object?&amp;nbsp; You change the pGxFile path in each iteration of the For loop, but you're adding pGxLayer each time.&amp;nbsp; How is pGxLayer related to pGxFile changing the path?&amp;nbsp; Do you need to set something to null, or maybe create a new object reference?&lt;BR /&gt;&lt;BR /&gt;I think it is very hard for people who learn VB to make the switch to C#&amp;nbsp; and Java mostly because VB hides alot of the Objectness of Object&amp;nbsp; Oriented programming, and for those of us who mainly work in those&amp;nbsp; languages, looking back at VB is also very hard.&lt;BR /&gt;&lt;BR /&gt;What I don't like about VB is the way object references are handled for&amp;nbsp; you and the fact that the the object references are assigned with the&amp;nbsp; same operator that you use for equality testing, and the lack of wording&amp;nbsp; to distinguish between methods and properties, leaves me wondering why&amp;nbsp; anyone continues to use this language.&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 20:37:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/last-call-4-add-layers-to-arcmap-from-listbox/m-p/464396#M12590</guid>
      <dc:creator>JohnHanson</dc:creator>
      <dc:date>2021-12-11T20:37:44Z</dc:date>
    </item>
  </channel>
</rss>

