Suite

Vb.net arcobjects - afficher le nom du champ


J'essaie d'afficher les noms de champs (noms d'alias) d'une classe d'entités. J'ai trouvé un extrait de code mais je n'arrive pas à le faire fonctionner :( Quelqu'un peut-il me dire s'il vous plaît ce qui ne va pas dans le code ? (Système : Arcgis 10.2, Visual Studio2012)

Importe ESRI.ArcGIS.esriSystem Importe ESRI.ArcGIS.Carto Importe ESRI.ArcGIS.ArcMapUI Importe ESRI.ArcGIS.Geodatabase Public Class FieldNameButton hérite de ESRI.ArcGIS.Desktop.AddIns.Button Public Sub New() End Sub Protected Overrides Sub OnClick() ShowDistinctFieldAliasNames(My.ArcMap.Document) End Sub Shared Sub ShowDistinctFieldAliasNames(ByVal featureClass As IFeatureClass) ' Obtient la collection Fields de la classe d'entités. Dim fields As IFields = featureClass.Fields Dim field As IField = Nothing ' Sur un index de base zéro, parcourez les champs de la collection. For i As Integer = 0 To fields.FieldCount - 1 ' Obtient le champ à l'index donné. 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() Throw New NotImplementedException End Sub End Class

Votre fonction attend une classe d'entités

Shared Sub ShowDistinctFieldAliasNames (ByVal featureClass As IFeatureClass)

mais vous transmettez un document

ShowDistinctFieldAliasNames(My.ArcMap.Document)

Pour transmettre une classe d'entités, vous devrez trouver une couche dans ce document et vérifier qu'il s'agit d'une classe d'entités. Quelque chose comme ça:

dim pLayer As ESRI.ArcGIS.Carto.ILayer dim pFLayer As ESRI.ArcGIS.Carto.IFeatureLayer pLayer= My.ArcMap.Document.FocusMap.Layer(0) si TypeOf pLayer Is ESRI.ArcGIS.Carto.IFeatureLayer alors pFLayertin = pFieldDisDisAyer (pFLayer.FeatureClass) se termine si

Si jamais vous rencontrez un cas où ArcMap se bloque avec une erreur d'application, utilisez les blocs Try… Catch dans votre code pour déterminer quel est le problème.


Voir la vidéo: Visual Basic.NET Tutorial 52 - How to Display Google Maps in (Octobre 2021).