共用方式為


使用 Interop 組件來判斷命令狀態

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

VSPackage 必須持續追蹤的命令,它可以處理的狀態。 在 VSPackage 中處理的命令會變成啟用或停用時,無法判斷環境。 它負責 VSPackage 通知有關命令狀態的環境,例如,一般狀態這類命令剪下複製,和貼上

狀態通知來源

環境接收透過 VSPackages' 命令的相關資訊QueryStatus方法,這是實作 VSPackage 的一部分的IOleCommandTarget介面。 環境呼叫QueryStatus VSPackage 在兩個情況下的方法︰

  • 當使用者開啟主功能表或內容功能表 (以滑鼠右鍵按一下) 時,環境執行QueryStatus該功能表上的命令,以判斷其狀態的所有方法。

  • 當 VSPackage 要求環境更新目前的使用者介面 (UI)。 這是目前顯示給使用者,例如,命令就會發生剪下複製,和貼上分組在 [標準] 工具列上,成為啟用和停用在回應內容和使用者的動作。

殼層裝載多個 VSPackages,因為殼層的效能會造成這個現象會降低,如果它需要用來輪詢來判斷命令狀態的每個 VSPackage。 相反地,在變更的時間,變更其 UI 時 VSPackage 應主動通知環境。 如需有關更新通知的詳細資訊,請參閱更新使用者介面

狀態通知失敗

VSPackage 失敗通知命令狀態變更的環境可以將 UI 置於不一致的狀態。 請記住,任何功能表或內容功能表命令的可放入工具列上的使用者。 因此,更新 UI,只在功能表或內容功能表開啟時,才是不夠的。

另請參閱

VSPackages 如何新增使用者介面項目
實作