Condividi tramite


Oggetti del contesto di selezione

L'ambiente di sviluppo integrato (IDE) di Visual Studio usa un oggetto contesto di selezione globale per determinare cosa deve essere visualizzato nell'IDE. Ogni finestra nell'IDE può avere un proprio oggetto contesto di selezione inserito nel contesto di selezione globale. L'IDE aggiorna il contesto di selezione globale con i valori di una finestra quando tale finestra ha lo stato attivo. Per altre informazioni, vedere Commenti e suggerimenti per l'utente.

Ogni cornice finestra o sito nell'IDE ha un servizio denominato STrackSelection. L'oggetto creato dal VSPackage presente nel frame della finestra deve chiamare il QueryService metodo per ottenere un puntatore all'interfaccia ITrackSelection .

Le finestre cornice possono impedire la propagazione di parti delle informazioni sul contesto di selezione al contesto di selezione globale all'avvio. Questa possibilità è utile per le finestre degli strumenti che potrebbero dover iniziare con una selezione vuota.

La modifica del contesto di selezione globale attiva gli eventi che i pacchetti VSPackage possono monitorare. I pacchetti VSPackage possono eseguire le attività seguenti implementando IVsTrackSelectionEx e IVsMonitorSelection interfacce:

  • Aggiornare il file attualmente attivo in una gerarchia.

  • Monitorare le modifiche apportate a determinati tipi di elementi. Ad esempio, se il pacchetto VSPackage usa una finestra Proprietà speciale, è possibile monitorare le modifiche nella finestra Proprietà attiva e riavviare i dati quando necessario.

    La sequenza seguente mostra il corso tipico del rilevamento della selezione.

  1. L'IDE recupera il contesto di selezione dalla finestra appena aperta e lo inserisce nel contesto di selezione globale. Se il contesto di selezione usa HIERARCHY_DONTPROPAGATE o edizione StandardLCONTAINER_DONTPROPAGATE, tali informazioni non vengono propagate al contesto globale. Per altre informazioni, vedere Commenti e suggerimenti per l'utente.

  2. Gli eventi di notifica vengono trasmessi a qualsiasi PACCHETTO VSPackage che li ha richiesti.

  3. Il VSPackage agisce sugli eventi ricevuti eseguendo attività quali l'aggiornamento di una gerarchia, la riattivazione di uno strumento o altre attività simili.

Vedi anche