Suite

Vb.net arcobjects active l'élément de menu contextuel personnalisé uniquement si une fonctionnalité est sélectionnée

Vb.net arcobjects active l'élément de menu contextuel personnalisé uniquement si une fonctionnalité est sélectionnée


La solution est peut-être très simple, mais je ne l'ai pas fait fonctionner.

Je souhaite activer un élément de menu contextuel de la vue des données uniquement si une entité (dans la couche polyligne) est sélectionnée, tous les autres endroits où l'élément doit être en gris. Puis-je dire que ce que je dois faire est de vérifier si une fonctionnalité est sélectionnée ? J'ai cherché cela mais je n'ai pas trouvé de solution appropriée. Ou d'autres soucis ?

J'utilise ArcObjects 10.2.2 et VB.NET.


Si vous créez un complément ArcGIS (plutôt que l'ancien format d'extension), je pense que vous pouvez activer / désactiver des boutons ou des éléments de menu dans votre classe de boutons comme ceci :

Protected Overrides Sub OnUpdate() Enabled = bSelected End Sub

Où bSelected est votre booléen indiquant si votre fonctionnalité est sélectionnée ou non. Vous pouvez vérifier si une entité dans une couche d'entités particulière est sélectionnée comme ceci :

Dim pFeatureSelection As IFeatureSelection = pLayer If pFeatureSelection.SelectionSet.Count = 0 Then bSelected = False Else bSelected = True End If

Ou vous pouvez les assembler pour réduire le code. Essaye ça:

Protected Overrides Sub OnUpdate() Dim pFeatureSelection As IFeatureSelection = pLayer If pFeatureSelection.SelectionSet.Count = 0 Then Enabled = False Else Enabled= True End If End Sub

EDIT : je viens de réaliser que vous avez dit menu contextuel, ce qui, je suppose, signifie un menu contextuel ? Dans ce cas, je ne suis pas sûr car je n'ai jamais utilisé de menus contextuels dans ArcMap.


Voir la vidéo: Context Menu Strip in