Más

Vb.net arcobjects - mostrar nombre de campo

Vb.net arcobjects - mostrar nombre de campo


Intento mostrar los nombres de campo (nombres de alias) de una clase de entidad. Encontré un fragmento de código pero no logré ejecutarlo :( ¿Alguien puede decirme, por favor, qué está mal en el código? (Sistema: Arcgis 10.2, Visual Studio2012)

Importaciones ESRI.ArcGIS.esriSystem Importaciones ESRI.ArcGIS.Carto Importaciones ESRI.ArcGIS.ArcMapUI Importaciones ESRI.ArcGIS.Geodatabase Clase pública FieldNameButton Hereda ESRI.ArcGIS.Desktop.AddIns.Button Public Protected Sub New () ShowDistinctFieldAliasNames (My.ArcMap.Document) End Sub Shared Sub ShowDistinctFieldAliasNames (ByVal featureClass As IFeatureClass) 'Obtiene la colección Fields de la clase de entidad. Atenuar campos Como IFields = featureClass.Fields Atenuar campo As IField = Nothing 'En un índice de base cero, iterar a través de los campos de la colección. For i As Integer = 0 To fields.FieldCount - 1 'Obtiene el campo en el índice dado. field = fields.Field (i) If field.Name <> field.AliasName Then Console.WriteLine ("{0}: {1}", field.Name, field.AliasName) MsgBox (field.AliasName) End If Next i My.ArcMap.Application.CurrentTool = Nothing End Sub Protected Overrides Sub OnUpdate () Enabled = My.ArcMap.Application IsNot Nothing End Sub Private Sub DisplayDistinctFieldAliasNames () Lanzar nueva NotImplementedException End Sub End Class

Su función espera una clase de entidad

Sub compartido ShowDistinctFieldAliasNames (ByVal featureClass como IFeatureClass)

pero estás pasando un documento

ShowDistinctFieldAliasNames (My.ArcMap.Document)

Para aprobar una clase de entidad, deberá buscar una capa en ese documento y verificar que sea una clase de entidad. Algo como esto:

dim pLayer Como ESRI.ArcGIS.Carto.ILayer dim pFLayer Como ESRI.ArcGIS.Carto.IFeatureLayer pLayer = My.ArcMap.Document.FocusMap.Layer (0) si TypeOf pLayer es ESRI.ArcGIS.Carto.IFeaturemes pLayer pLayer. (pFLayer.FeatureClass) end if

Si alguna vez tiene un caso en el que ArcMap se bloquea con un error de aplicación, use Try ... Catch blocks en su código para averiguar cuál es el problema.


Ver el vídeo: Pasar datos de un formulario a otro en