Več

Vb.net arcobjects omogočajo prilagojen element kontekstnega menija samo, če je izbrana funkcija

Vb.net arcobjects omogočajo prilagojen element kontekstnega menija samo, če je izbrana funkcija


Rešitev je lahko zelo preprosta, vendar mi ni uspelo.

Element kontekstnega menija pogleda podatkov želim omogočiti le, če je izbrana funkcija (v sloju polilinije), vsa druga mesta pa morajo biti v sivi barvi. Ali lahko rečem, da moram preveriti, ali je funkcija izbrana? To sem iskal, vendar nisem našel prave rešitve. Ali pa kakšne druge skrbi?

Uporabljam ArcObjects 10.2.2 in VB.NET.


Če izdelujete dodatek ArcGIS (namesto stare oblike razširitve), potem verjamem, da lahko v svojem razredu gumbov omogočite / onemogočite gumbe ali elemente menija takole:

Zaščitena preglasitev Sub OnUpdate () Enabled = bIzbrana End Sub

Kjer je bSelected vaša logična vrednost, ki označuje, ali je vaša funkcija izbrana ali ne. Lahko preverite, ali je funkcija v določenem sloju funkcij izbrana tako:

Zatemni pFeatureSelection kot IFeatureSelection = pLayer Če je pFeatureSelection.SelectionSet.Count = 0 Potem je bSelected = False Else bSelected = True End Če

Ali pa jih združite, da zmanjšate kodo. Poskusite to:

Zaščitene preglasitve Sub OnUpdate () Dim pFeatureSelection As IFeatureSelection = pLayer Če je pFeatureSelection.SelectionSet.Count = 0 Potem Enabled = False Else Enabled = True End If End Sub

EDIT: Pravkar sem spoznal, da ste rekli kontekstni meni, kar predpostavljam pomeni meni z desnim klikom? V tem primeru nisem prepričan, saj v ArcMap -u še nikoli nisem uporabljal kontekstnih menijev.