Поделиться через


Объекты контекста выбора

Интегрированная среда разработки Visual Studio использует глобальный объект контекста выбора для определения того, что должно отображаться в интегрированной среде разработки. Каждое окно в интегрированной среде разработки может содержать собственный объект контекста выбора, отправленный в контекст глобального выбора. Интегрированная среда разработки обновляет контекст глобального выбора со значениями из окна, когда в этом окне есть фокус. Дополнительные сведения см. в разделе "Отзывы о пользователе".

Каждый фрейм окна или сайт в интегрированной среде разработки имеет вызываемую STrackSelectionслужбу. Объект, созданный VSPackage, который находится в кадре окна, должен вызвать QueryService метод, чтобы получить указатель на ITrackSelection интерфейс.

Окна кадров могут сохранять части информации о контексте выбора от распространения в контекст глобального выбора при запуске. Эта возможность полезна для окон инструментов, которые могут начинаться с пустого выделения.

Изменение контекста глобального выбора активирует события, которые могут отслеживать VSPackages. VSPackages может выполнять следующие задачи, реализуя и IVsMonitorSelection интерфейсыIVsTrackSelectionEx:

  • Обновите текущий активный файл в иерархии.

  • Отслеживайте изменения определенных типов элементов. Например, если VSPackage использует специальное окно свойств , вы можете отслеживать изменения в окне активных свойств и перезапускать их при необходимости.

    В следующей последовательности показан типичный курс отслеживания выбора.

  1. Интегрированная среда разработки извлекает контекст выбора из только что открытого окна и помещает его в контекст глобального выбора. Если контекст выбора использует HIERARCHY_DONTPROPAGATE или SELCONTAINER_DONTPROPAGATE, эта информация не распространяется в глобальный контекст. Дополнительные сведения см. в разделе "Отзывы о пользователе".

  2. События уведомлений передаются в любой пакет VSPackage, запрашивающий их.

  3. VSPackage действует на события, которые он получает, выполняя такие действия, как обновление иерархии, повторная активация средства или другие аналогичные задачи.

См. также