Obiekty kontekstu wyboru

Zintegrowane środowisko projektowe (IDE) programu Visual Studio używa globalnego obiektu kontekstu wyboru w celu określenia, co powinno być wyświetlane w środowisku IDE. Każde okno w środowisku IDE może mieć własny obiekt kontekstu wyboru wypychany do kontekstu zaznaczenia globalnego. Środowisko IDE aktualizuje kontekst wyboru globalnego z wartościami z okna, gdy to okno ma fokus. Aby uzyskać więcej informacji, zobacz Opinie do użytkownika.

Każda ramka okna lub lokacja w środowisku IDE ma usługę o nazwie STrackSelection. Obiekt utworzony przez pakiet VSPackage, który znajduje się w ramce okna, musi wywołać QueryService metodę , aby uzyskać wskaźnik do interfejsu ITrackSelection .

Okna ramowe mogą uniemożliwić propagację fragmentów informacji kontekstowych wyboru do kontekstu wyboru globalnego podczas ich uruchamiania. Ta możliwość jest przydatna w przypadku okien narzędzi, które mogą zaczynać się od pustego zaznaczenia.

Modyfikowanie globalnego kontekstu wyboru wyzwala zdarzenia, które mogą być monitorowane przez pakiety VSPackage. Pakiety VSPackage mogą wykonywać następujące zadania, implementując IVsTrackSelectionEx interfejsy i IVsMonitorSelection :

  • Zaktualizuj aktualnie aktywny plik w hierarchii.

  • Monitoruj zmiany niektórych typów elementów. Jeśli na przykład pakiet VSPackage używa specjalnego okna Właściwości , możesz monitorować zmiany w aktywnym oknie Właściwości i ponownie uruchamiać je w razie potrzeby.

    Poniższa sekwencja przedstawia typowy przebieg śledzenia wyboru.

  1. Środowisko IDE pobiera kontekst wyboru z nowo otwartego okna i umieszcza go w kontekście wyboru globalnego. Jeśli kontekst wyboru używa HIERARCHY_DONTPROPAGATE lub SELCONTAINER_DONTPROPAGATE, te informacje nie są propagowane do kontekstu globalnego. Aby uzyskać więcej informacji, zobacz Opinie do użytkownika.

  2. Zdarzenia powiadomień są emitowane do dowolnego pakietu VSPackage, który ich zażądał.

  3. Pakiet VSPackage działa na odbieranych zdarzeniach, wykonując działania, takie jak aktualizowanie hierarchii, ponowne aktywowanie narzędzia lub inne podobne zadania.

Zobacz też