Suite

Existe-t-il un moyen d'appeler la boîte de dialogue "Sélectionner par emplacement" et d'accéder aux paramètres


Dans une application que je développe à l'aide de VB.Net avec ArcObjects 9.3, j'essaie d'afficher la boîte de dialogue "Sélectionner par emplacement" dans mon code. Je sais que je peux l'appeler directement en utilisant l'UID via l'interface ICommandItem, mais j'ai également besoin d'accéder aux paramètres définis par la boîte de dialogue (par exemple, la couche de sélection, la méthode de sélection, etc. pense que c'est possible avec la méthode UID) . Existe-t-il un moyen de le faire d'une manière ou d'une autre qui me manque, de la même manière que vous pouvez appeler la boîte de dialogue "Sélectionner par attribut" à l'aide de l'interface IQueryAttributes ?


Je n'ai jamais utilisé cette interface donc une bonne trouvaille en effet ! Mais je ne suis toujours pas convaincu que le dialogue soit exposé…

Une alternative est d'ouvrir et d'afficher l'outil de géotraitement selectbylocation ? Le code VBA suivant ouvre l'outil Calculer le champ mais il donne la syntaxe de base pour remplir les paramètres et ouvrir l'interface.

Public Sub OpenCalculateTool() ' Accrochez-vous à Toolbox et obtenez l'outil Dim pUID As New UID pUID = "esriGeoprocessingUI.ArcToolboxExtension" Dim pArcToolboxExtension As IArcToolboxExtension Set pArcToolboxExtension = Application.FindExtensionByCLSID(pUID) Dim pArcToolbox pArcToolbox DEx pArcToolbox. As IGPTool Définir pGPTool = pArcToolbox.GetToolbyNameString("CalculateField") ' Créer des messages, requis par la méthode Invoke Dim msgs As IGPMessages Définir msgs = New GPMessages ' Obtenir la structure des paramètres existants Dim pArray As IArray Définir pArray = pGPTool.Parameter interfaces Dim ' Declare pGPParameter As IGPParameter Dim pGPDataType As IGPDataType Dim pGPParameterEdit As IGPParameterEdit ' Définit les paramètres de l'outil Définir pGPParameter = pArray.Element(0) Définir pGPParameterEdit = pGPParameter Définir pGPDataType = pGPParameter.DataType Définir pGPParameterGPEdit.Value(s) ' Nom de la couche d'entités Set pGPParameter = pArray.Element( 1) Set pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.DataType Set pGPParameterEdit.Value = pGPDataType.CreateValue("xx") ' Field Set pGPParameter = pArray.Element(3) Set pGPParameterEdit = pGPParameter Set pGPDataType = pGPParameter.Datameter Set = pGPDataType.CreateValue("VB") ' Ouvrir l'outil Dim pGPToolCommandHelper As IGPToolCommandHelper2 Définir pGPToolCommandHelper = Nouveau GPToolCommandHelper pGPToolCommandHelper.SetTool pGPTool pGPToolCommandHelper.InvokeModal 0, pArray, True, msgs