Поделиться через


С помощью страницы параметров

Visual Studio модель автоматизации предоставляет DTE объект для разрешения VSPackages для доступа к Параметры диалоговое окно в Сервис меню.

Как правило, страницы Параметры диалоговое окно может иметь доступ к нему осуществляется с помощью модели автоматизации, что страницы Visual Studio интегрированная среда разработки (ide) или VSPackage. Однако некоторые исключения следующим образом:

  • Параметры Динамическая справка страница нельзя получить доступ программным образом. Динамическая справка функция может управляться с помощью модели автоматизации, но элемент управления необходимо запускать непосредственно в коде. Дополнительные сведения см. в разделе How to: Control the Dynamic Help Window.

  • Элемент управления Шрифты и цвета параметры предоставляются с помощью собственного API, а не через модель автоматизации. Дополнительные сведения см. в разделе Шрифты.

  • Свойства языкового нельзя получить с помощью модели автоматизации.

Параметры страницы, которые не поддерживают Visual Studio модель автоматизации не может возвращать автоматизацию Properties коллекция запрашивано. Возвращается, если коллекция не все функции. Дополнительные сведения об управлении этих функций см. в разделах Коллекции свойств DTE.

Управление страницы параметров

Управление Параметры страницы VSPackage должны получить a DTE объект из модели автоматизации.

Примечание

Если VSPackage использует модель автоматизации для запросов и изменения параметров устанавливается Параметры страницы, оно не расширяет возможности среды разработки.Поэтому пакет не должен реализовывать объект автоматизации.

Получить a DTE объект с помощью модели автоматизации, вызывает QueryService метод и предоставляет аргумент идентификатор службы SID_SDTE а аргумент интерфейса IID__DTEследующим образом.

pServiceProvider->QueryService(SID_SDTE, IID__DTE, (LPVOID*)pDTE);

Получить a DTE объект с помощью управляемого пакета .NET Framework MPF) вызывает GetService метод и предоставляет a serviceType тип параметра SDTE.

Dim vsEnvironment As DTE = DirectCast(GetService(GetType(SDTE)), DTE)
DTE vsEnvironment = (DTE)GetService(typeof(SDTE));

Параметры страница указана 2 идентификаторами. Первый идентификатор является строкой, которая отображает папку, содержащую Параметры страница. Второй идентификатор строка, которая указывает конкретный элемент в этой папке. Называемых Параметры категорию и подкатегорию страницы или его раздел и subtopic.

Например, параметры текстового редактора для обработки базовый код на панели навигации как Основной элемент Текстовый редактор папка. Идентификатор категории TextEditor и subcategory Basicи Параметры сама страница называется TextEditor.Basic страница.

Примечание

Для локализации и другим причинам, имена, указанные в on Параметры страницы могут отличаться от строк, используемых в качестве идентификаторов категории и подкатегории.Можно использовать автоматизацию, чтобы запросить интегрированную среду разработки для получения правильных идентификаторов, если они не описаны в другом месте.Расположение реестра HKEY_LOCAL_MACHINE \ software \ microsoft \ VisualStudio \<К версии>\ AutomationProperties, где <К версии> номер версии выпуска 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 коллекция например, a Property объект.

Как и в случае с категориями и подкатегориями, каждый параметр имеет идентификатор, который уникальным образом представляет собой строку. Например, Размер интервала табуляции установить в TextEditor.Basic страница указанной строкой TabSize.

Примечание

Для локализации и другим причинам, имена, указанные в on Параметры страницы могут отличаться от строк, используемых в качестве идентификаторов параметра.Можно использовать автоматизацию, чтобы запросить интегрированную среду разработки для получения правильных идентификаторов, если они не описаны в другом месте.

Можно использовать ValueProperty объект, который возвращается 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);

Дополнительные сведения см. в разделе Управление параметрами.

Сохранение параметров страницы параметров

Интегрированная среда разработки реализует сохранение состояния Параметры страницы, которые полностью поддерживают Visual Studio модель автоматизации.

Параметры на страницах, которые включены в интегрированной среде разработки автоматически сохранены (или извлечено), когда пользователь щелкает Параметры импорта-экспорта команда на Сервис меню.

Можно включить возвращал пользовательскую Параметры страница для использования этой автоматической поддержки сохраняемости, добавляя ProfileSave пометить на пользовательские Параметры запись реестра страницы в разделе HKEY_LOCAL_MACHINE \ software \ microsoft \ VisualStudio \<К версии>\ AutomationProperties, где <К версии> номер версии выпуска Visual Studio. Дополнительные сведения см. в разделе Регистрация пользовательские Параметры страницы.

См. также

Задачи

Практическое руководство. Открытие страницы "Параметры" программно

Ссылки

DTE

Основные понятия

Создание страницы параметров с помощью сборок взаимодействия

Управление параметрами

Регистрация пользовательские Параметры страницы

Другие ресурсы

Создание окон среды и управление ими