屬性頁
用戶可以使用屬性頁來檢視和變更專案組態相依和獨立屬性。 [屬性頁] 按鈕會在 [屬性] 視窗或 方案總管 工具列上為提供所選物件之屬性頁檢視的物件啟用。 屬性頁是由環境所建立,而且適用於方案和專案。 不過,它們也可以提供給使用組態相依屬性的項目專案使用。 當專案內的檔案需要不同的編譯程式參數設定才能正確建置時,可能會使用這項功能。
使用屬性頁
如果已經顯示屬性頁,而且選取範圍會變更(例如,從方案變更為專案),則頁面中顯示的資訊會變更以顯示新選取範圍的屬性。 如果對象上沒有支援屬性頁的屬性,則屬性頁是空的。
如果選取多個物件,則屬性頁會顯示所有選取專案的屬集。 如果選取的專案不包含與組態相關的屬性,且按兩下 方案總管 工具列上的 [屬性頁] 按鈕,焦點會變更為 屬性視窗。 如需與 屬性視窗 和選取專案相關的詳細資訊,請參閱擴充屬性。
如果多個對象顯示屬性,而且您在屬性頁面上變更值,即使物件一開始不同,而且頁面在個別物件的屬性顯示時為空白,物件的所有值都會設定為新的值。
Visual Studio 中提供兩種一般類型的 ProjectProperty Pages 對話方塊。 例如,在第一個Visual Basic專案中,屬性頁會使用字段格式顯示,如下列螢幕快照所示。 在第二個區段中,如本節稍後所示,屬性頁會裝載類似在 [屬性視窗] 中找到的屬性方格。
具有欄位格式和樹狀結構的 [項目屬性頁] 對話方塊
[屬性頁] 對話框中的樹狀結構不會使用 IVsHierarchy來建置。 環境,根據 傳遞給 ISpecifyPropertyPages 它的層級名稱,以及 IVsPropertyPage 介面,建置它。
Visual Studio 屬性頁面上只有兩個最上層類別:
通用屬性,顯示所選物件或物件的組態無關資訊。 因此,選取其中一個 [通用屬性] 子類別時,對話框頂端的 [組態]、[平臺] 和 [組態管理員] 選項無法使用。
組態屬性,其中包含與方案或專案之偵錯、優化和建置參數相關的組態相關信息。
您無法建立任何其他最上層類別,但您可以選擇不要在 的
IVsPropertyPage
實作中顯示一個或另一個類別。 例如,如果對象沒有任何與組態無關的屬性,您可以選擇不顯示 [通用屬性] 類別。 如果您在ISpecifyPropertyPages
組態物件中實作時ISpecifyPropertyPages
,從專案的瀏覽物件和組態屬性實作 ,則會顯示 Common 屬性(實作IVsCfg
、IVsProjectCfg
和相關介面的物件)。最上層類別底下顯示的每個類別都代表個別的屬性頁。 對話框中提供的類別和子類別項目取決於您的 實作
ISpecifyPropertyPages
和IVsPropertyPage
。IDispatch
選取容器中要顯示屬性之專案的物件會實ISpecifyPropertyPages
作屬性,以列舉類別標識符的清單。 類別標識碼會當做變數傳遞至 ,ISpecifyPropertyPages
並用來具現化屬性頁。 類別標識碼的清單也會傳遞至 ,IVsPropertyPage
以在對話框左側建立樹狀結構。 屬性頁接著會將資訊傳回物件,IDispatch
該物件會實作ISpecifyPropertyPages
並填入每個頁面的資訊。瀏覽物件的屬性會針對選取容器中的每個物件使用
IDispatch
來擷取。Help::DisplayTopicFromF1Keyword
在 VSPackage 中實作可提供 [說明] 按鈕的功能。如需詳細資訊,請參閱
IDispatch
MSDN 連結庫中的 和ISpecifyPropertyPages
。範例中顯示的第二種屬性頁類型會裝載屬性方格的形式,如下列螢幕快照所示。
[屬性頁] 對話框與屬性方格
介面
IVSMDPropertyBrowser
和IVSMDPropertyGrid
(在 vsmanaged.h 中宣告) 是用來在對話框或視窗中建立和填入屬性方格。項目的架構已從舊版Visual Studio大幅變更。 特別是,哪些專案作用中的概念已經變更。 在 Visual Studio 中,沒有使用中專案的概念。 在先前的開發環境中,使用中的專案是建置和部署命令的專案,無論內容為何,都會預設為 。 現在,方案會控制及仲裁哪些建置和部署命令會套用至哪些專案。
先前的作用中項目現在會以三種不同的方式之一擷取:
啟動專案
您可以從方案的屬性頁指定專案或專案,當使用者按下 F5 或從 [建置] 功能選取 [執行] 時,就會啟動該專案或專案或專案。 這的運作方式與舊的使用中項目類似,因為它的名稱會以粗體字型顯示在 方案總管 中。
您可以藉由呼叫
DTE.Solution.SolutionBuild.StartupProjects
來擷取啟動專案做為自動化模型中的屬性。 在 VSPackage 中,您可以呼叫 get_StartupProject 或 get_StartupProject 方法。IVsSolutionBuildManager
在 SID_SVsSolutionBuildManager 上以服務QueryService
的形式提供。 如需詳細資訊,請參閱 專案組態物件 和 方案組態。作用中解決方案建置組態
Visual Studio 具有作用中的解決方案組態,可藉由實
DTE.Solution.SolutionBuild.ActiveConfiguration
作 在自動化模型中取得。 方案組態是一個集合,其中包含方案中每個專案的項目組態(每個專案可以在多個平臺上有多個組態,且名稱不同)。 如需解決方案屬性頁的詳細資訊,請參閱 方案組態。專案目前已選取
實作 GetCurrentSelection 方法來擷取選取的項目階層和項目專案。 從 DTE,您會使用
SelectedItems.SelectedItem.Project
和SelectedItems.SelectedItem.ProjectItem
方法。 核心 Visual Studio 檔中的標題下有範例程序代碼。