共用方式為


IDE 中的選取項目和貨幣

Visual Studio 整合開發環境 (IDE) 透過使用選取內容來維護使用者目前選取物件的相資訊。 透過選取內容,VSPackages 可以藉由兩種方式參與貨幣追蹤:

  • 藉由將 VSPackages 的貨幣資訊傳播至 IDE。

  • 藉由監視使用者目前在 IDE 內的作用中選取。

選取內容

Visual Studio IDE 會全域追蹤其全域選取內容物件中的 IDE 貨幣。 下表顯示組成選取內容的元素。

元素 描述
目前階層 通常是目前的專案;NULL 目前階層表示整個方案是目前的。
目前的 ItemID 目前階層內選取的項目;當專案視窗中有多個選取時,可能會有多個目前項目。
目前的 SelectionContainer 保留 [屬性] 視窗應該顯示屬性的一或多個物件。

此外,環境會維護兩個全域清單:

  • 作用中 UI 命令識別碼的清單

  • 目前作用中元素類型的清單。

視窗類型和選取

Visual Studio IDE 會將視窗組織成兩種一般類型:

  • 階層類型視窗

  • 框架視窗,例如工具和文件視窗

    對於每種視窗類型,IDE 都會以不同的方式追蹤貨幣。

    最常見的專案類型視窗是 IDE 控制的方案總管。 專案類型視窗會追蹤全域選取內容的全域階層和 ItemID,而視窗則依賴使用者的選取來判斷目前的階層。 對於專案類型視窗,環境提供全域服務 SVsShellMonitorSelection,VSPackages 可以透過此服務監視開啟元素的目前值。 環境中的屬性瀏覽是由這個全域服務所驅動。

    另一方面,框架視窗使用框架視窗中的 DocObject 來推送 SelectionContext 值 (hierarchy/ItemID/SelectionContainer trio)。 . 框架視窗使用服務 SVsShellMonitorSelection 來實現此目的。 DocObject 只能推送選取容器的值,而階層和 ItemID 的本機值保持不變,這對於 MDI 子文件來說是典型的。

事件和貨幣

可能會影響環境貨幣概念的兩種事件類型:

  • 傳播到全域層級並更改視窗框架選取內容的事件。 這類事件的範例包括開啟的 MDI 子視窗、開啟的全域工具視窗,或開啟的專案類型工具視窗。

  • 變更視窗框架選取內容中追蹤之元素的事件。 範例包括變更 DocObject 內的選取,或變更專案類型視窗中的選取。