選取項目內容物件
Visual Studio 集成開發環境 (IDE) 會使用全域選取內容對象來判斷 IDE 中應該顯示的內容。 IDE 中的每個視窗都可以有自己的選取內容物件推送至全域選取內容。 當視窗具有焦點時,IDE 會使用視窗的值來更新全域選取內容。 如需詳細資訊,請參閱 意見反應給使用者。
IDE 中的每個視窗框架或網站都有一個稱為 STrackSelection的服務。 您的 VSPackage 所建立的對象必須呼叫 QueryService
方法,以取得介面的 ITrackSelection 指標。
框架視窗可以保留部分選取內容資訊,使其在啟動時傳播到全域選取內容。 這項功能對於可能必須從空白選取範圍開始的工具視窗很有用。
修改全域選取內容會觸發 VSPackage 可以監視的事件。 VSPackage 可以藉由實作 IVsTrackSelectionEx
和 IVsMonitorSelection 介面來執行下列工作:
更新階層中目前作用中的檔案。
監視特定類型的項目變更。 例如,如果您的 VSPackage 使用特殊的 [屬性] 視窗,您可以監視使用中 [屬性] 視窗中的變更,並在需要時重新啟動。
下列順序顯示選取追蹤的一般過程。
IDE 會從新開啟的視窗擷取選取內容,並將其放入全域選取內容中。 如果選取內容使用HIERARCHY_DONTPROPAGATE或SELCONTAINER_DONTPROPAGATE,該資訊就不會傳播到全域內容。 如需詳細資訊,請參閱 意見反應給使用者。
通知事件會廣播至任何要求它們的 VSPackage。
VSPackage 會藉由執行更新階層、重新啟用工具或其他類似工作等活動,來處理它所接收的事件。