使用 [選項] 頁
Visual Studio Automation 模型提供DTE物件,才能啟用存取的 VSPackages 選項對話方塊在工具功能表。
一般來說,網頁在選項可以藉由使用自動化模型中,存取] 對話方塊中,是否頁面所提供的Visual Studio整合式的開發環境 (IDE) 或 VSPackage。 不過,有一些的例外情況,如下所示:
設定的動態說明無法以程式設計方式存取頁面。 動態說明可以藉由使用自動化模型,控制功能,但是控制項必須直接在程式碼中完成。 如需詳細資訊,請參閱 How to: Control the Dynamic Help Window。
控制項的字型和色彩頁面設定透過它自己的 API,不能透過 automation 模型來提供。 如需詳細資訊,請參閱 字型。
透過自動化模型,無法取得特定語言的內容。
選項不支援的網頁Visual Studio automation 模型可能不會傳回自動化Properties查詢時的集合。 傳回集合時,並非所有的功能存在。 如需有關如何管理這些功能的資訊,請參閱DTE 屬性集合。
管理 [選項] 頁
管理選項的網頁,必須取得 VSPackage DTE從自動化模型的物件。
![]() |
---|
當 VSPackage,使用 automation 模型,以 [查詢] 和 [變更] 設定在安裝選項的網頁,它不會擴充 IDE 功能。因此,封裝並沒有實作自動化物件。 |
取得DTE物件,可透過自動化模型中,呼叫QueryService方法,並提供的服務 ID 引數SID_SDTE和介面引數的IID__DTE、,如下所示。
pServiceProvider->QueryService(SID_SDTE, IID__DTE, (LPVOID*)pDTE);
取得DTE物件藉由管理套件架構 (MPF),呼叫GetService方法,並提供serviceType型別參數的SDTE。
Dim vsEnvironment As DTE = DirectCast(GetService(GetType(SDTE)), DTE)
DTE vsEnvironment = (DTE)GetService(typeof(SDTE));
選項頁面由兩個識別項指定。 第一個識別項是一個字串指出所在的資料夾, 選項頁面。 第二個識別項是字串,表示該資料夾中的特定項目。 這些稱為 「 選項頁面類別和子類別,或其主題與副主題。
例如,處理基本程式碼的文字編輯器設定都是在功能窗格中,為基本 成員的 文字編輯器資料夾。 類別識別項是TextEditor和它的子類別是Basic,以及選項網頁本身就是TextEditor.Basic頁面。
![]() |
---|
當地語系化和其他的理由,名稱會顯示在選項網頁,做為類別和次類別識別項的字串可能會有所不同。您可能必須使用自動化來查詢以取得正確的識別項,IDE,如果它們不會記錄下來其他地方。登錄位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\< VS 版本 >\AutomationProperties,其中 < VS 版本 > 已發行的版本號碼Visual Studio。如需詳細資訊,請參閱 註冊自訂 [選項] 頁。 |
您可以取得內容TextEditor.Basic頁面透過自動化模型,使用下列的範例。
CComPtr<_DTE> srpDTE;
CComPtr<Properties> srpDTEPropertiesList;
hr = srpDTE->get_Properties("TextEditor", "Basic", &srpDTEPropertiesList);
若要使用 MPF 來取得內容,請使用Properties方法。
Dim propertiesList As Properties = vsEnvironment.get_Properties("TextEditor", "Basic")
If propertiesList Is Nothing Then
' The specified properties collection is not available.
Exit Sub
End If
Properties propertiesList = vsEnvironment.get_Properties("TextEditor", "Basic");
if (null == propertiesList)
{
// The specified properties collection is not available.
return;
}
Item方法會傳回個別的設定,從Properties集合,做為Property物件。
使用類別和子類別,每一個設定都是唯一字串識別項。 例如, 定位點大小上設定TextEditor.Basic字串,識別頁面TabSize。
![]() |
---|
當地語系化和其他的理由,名稱會顯示在選項頁面內容可能不同於用來作為設定識別項的字串。您可能必須使用自動化來查詢以取得正確的識別項,IDE,如果它們不會記錄下來其他地方。 |
您可以使用Value的Property所傳回的物件Item方法的Properties查詢和變更的設定狀態的集合。
例如,若要設定定位點大小上設定TextEditor.Basic頁面透過自動化模型,使用Properties傳回物件,如下例所示。
CComPtr<Property> srpProperty;
hr = srpDTEPropertiesList->Item("TabSize", &srpProperty);
hr= srpProperty.set_Value(4);
下列範例會示範如何更新定位點大小使用 MPF 設定。
Dim tabSize As [Property] = propertiesList.Item("TabSize")
Dim oldSize As Short = CShort(tabSize.Value)
Dim message As String
If oldSize <> 4 Then
tabSize.Value = 4
message = String.Format(CultureInfo.CurrentUICulture, "For Basic, the Text Editor had a tab size of {0}" & " and now has a tab size of {1}.", oldSize, tabSize.Value)
Else
message = String.Format(CultureInfo.CurrentUICulture, "For Basic, the Text Editor has a tab size of {0}.", tabSize.Value)
End If
Property tabSize = propertiesList.Item("TabSize");
short oldSize = (short)tabSize.Value;
string message;
if (oldSize != 4)
{
tabSize.Value = 4;
message = string.Format(CultureInfo.CurrentUICulture,
"For Basic, the Text Editor had a tab size of {0}" +
" and now has a tab size of {1}.", oldSize, tabSize.Value);
}
else
{
message = string.Format(CultureInfo.CurrentUICulture,
"For Basic, the Text Editor has a tab size of {0}.", tabSize.Value);
}
MessageBox.Show(message, "Text Editor, Basic, Tab Size:",
MessageBoxButtons.OK, MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1, 0);
如需詳細資訊,請參閱 控制選項設定。
保存選項分頁設定值
IDE 會實作狀態保存性選項頁面完全支援Visual Studio automation 模型。
在 IDE 中所包含的網頁上的設定是自動儲存 (或擷取) 當使用者按一下匯入/匯出設定 命令 工具功能表。
您可以讓您自訂選項頁面以新增使用這項自動永續性支援ProfileSave旗標為 「 自訂選項頁面 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\] 下的登錄項目< VS 版本 >\AutomationProperties,其中 < VS 版本 > 已發行的版本號碼Visual Studio。 如需詳細資訊,請參閱 註冊自訂 [選項] 頁。