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


Выбор и актуальность в интегрированной среде разработки

Интегрированная среда разработки Visual Studio (IDE) сохраняет сведения о выбранных в данный момент объектах пользователей с помощью контекста выбора. С контекстом выбора VSPackages может принимать участие в отслеживании валют двумя способами:

  • Распространяя денежные сведения о VSPackages в интегрированную среду разработки.

  • Отслеживая активные выборы пользователей в интегрированной среде разработки.

Контекст выбора

Интегрированная среда разработки Visual Studio глобально отслеживает валюту интегрированной среды разработки в собственном объекте контекста выбора. В следующей таблице показаны элементы, составляющие контекст выделения.

Элемент Description
Текущая иерархия Обычно текущий проект; Текущая иерархия NULL указывает, что решение в целом является текущим.
Текущий идентификатор элемента Выбранный элемент в текущей иерархии; Если в окне проекта несколько выборок, может быть несколько текущих элементов.
Текущего SelectionContainer Содержит один или несколько объектов, для которых окно свойств должны отображаться свойства.

Кроме того, среда поддерживает два глобальных списка:

  • Список активных идентификаторов команд пользовательского интерфейса

  • Список типов активных элементов.

Типы окон и выбор

Интегрированная среда разработки Visual Studio упорядочивает окна в два общих типа:

  • Окна типа иерархии

  • Окна кадров, такие как окна инструментов и документов

    Интегрированная среда разработки отслеживает валюту по-разному для каждого из этих типов окон.

    Наиболее распространенное окно типа проекта — обозреватель решений, который управляет интегрированной среды разработки. Окно типа проекта отслеживает глобальную иерархию и ItemID контекста глобального выбора, а окно зависит от выбора пользователя для определения текущей иерархии. Для окон типов проекта среда предоставляет глобальную службу SVsShellMonitorSelection, с помощью которой VSPackages может отслеживать текущие значения открытых элементов. Просмотр свойств в среде управляется этой глобальной службой.

    Окна кадров, с другой стороны, используйте DocObject в окне кадра, чтобы отправить значение SelectionContext (иерархия/ItemID/SelectionContainer trio). . Окна кадров используют службу SVsShellMonitorSelection для этой цели. DocObject может отправлять только значения для контейнера выбора, оставляя локальные значения иерархии и ItemID без изменений, как обычно для дочерних документов MDI.

События и валюта

Могут возникать два типа событий, влияющих на понятие валюты среды:

  • События, распространяемые на глобальный уровень и изменяющие контекст выбора кадра окна. Примеры такого рода событий включают открывающееся окно MDI Child, открытое глобальное окно инструментов или открывающееся окно средства типа проекта.

  • События, изменяющие элементы, трассированные в контексте выбора кадра окна. Примеры включают изменение выделения в docObject или изменение выбора в окне типа проекта.