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


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

Обновлен: Ноябрь 2007

Параметры на различных страницах диалогового окна Параметры меню Сервис (далее — "Страницы параметров") можно включить или отключить. Просто используйте свойства Properties и Value и метод Item объекта DTE в модели автоматизации Visual Studio.

awdwz11a.alert_note(ru-ru,VS.90).gifПримечание.

Некоторые элементы на страницах диалогового окна Параметры не доступны программно. Многие элементы, такие как Список маркеров комментариев на странице параметров списка задач можно просмотреть или изменить программными способами. Однако некоторые страницы диалогового окна Параметры, например, страница Динамическая справка под узлом Справка на странице Среда, не допускают этого. Кроме того, в то время, как некоторые страницы диалогового окна Параметры имеют программируемые настройки, другие элементы на странице совсем не обязательно будут доступны. Если оказывается, что параметр не поддается изменению, то можно попробовать изменить его при помощи Visual Studio Industry Partner (программа VSIP). Дополнительные сведения см. в подразделе "Добавление параметров на существующие страницы параметров" далее в этом разделе. Полный список программно доступных параметров с их точными именами см. в подразделе "Имена элементов свойств" раздела Определение имен элементов свойств на страницах параметров.

Отображение параметров

Для доступа к параметрам на существующей странице Параметры используйте коллекцию Properties и объект Property. Следующий пример VSMacro выводит все имена и текущие значения всех элементов на странице параметров документа.

' Macro code.
Sub PropertiesExample()
    ' Create and initialize a variable to represent the Documents 
    ' Options page.
    Dim envGenTab As EnvDTE.Properties = _
    DTE.Properties("Environment", "Documents")
    Dim prop As EnvDTE.Property
    Dim msg As String

    ' Loop through each item in the Documents Options box.
    For Each prop In envGenTab
        msg += ("PROP NAME: " & prop.Name & "   VALUE: " & _
        prop.Value) & vbCr
    Next
    MsgBox(msg)
End Sub

Следующий пример VSMacro выводит все доступные свойства на странице Параметры для Списка задач узла Среда. Он также выводит список всех доступных значений для Списка маркеров комментария.

' Macro code.
Sub DisplayProperties()
    ' Variables to represent the properties collection
    ' and each property in the Options dialog box.
    Dim prop As EnvDTE.Property
    Dim props As EnvDTE.Properties
    Dim propVals As Object()
    Dim propVal, msg As String

    ' Represents the Task List Node under the 
    ' Enviroment node.
    props = DTE.Properties("Environment", "TaskList")
    ' Represents the items in the comment Token list
    ' and their priorities (1-3/low-high).
    prop = props.Item("CommentTokens")
    propVals = prop.Value

    Try
        ' List each property name for the Options page
        ' and all of its possible values.
        For Each prop In props
            msg += "PROP NAME: " & prop.Name & vbCr
            For Each propVal In propVals
                msg += "  Value: " & propVal & vbCr
            Next
        Next
        MsgBox(msg)
    Catch ex As System.Exception
        MsgBox("ERROR: " & ex.Message)
    End Try
End Sub

Следующий пример выводит список всех программируемых параметров страницы Параметры под узлом Текстовый редактор | C# | Форматирование.

' Macro code.
Sub PropertiesExample()
    ' Create and initialize a variable to represent the C# 
    ' Formatting text editor options page.
    Dim txtEdCSFormat As EnvDTE.Properties = _
    DTE.Properties("TextEditor", "CSharp - Formatting")
    Dim prop As EnvDTE.Property
    Dim msg As String

    ' Loop through each item in the C# Formatting Options page.
    For Each prop In txtEdCSFormat
        msg += ("PROP NAME: " & prop.Name & "   VALUE: " & _
        prop.Value) & vbCr
    Next
    MsgBox(msg)
End Sub

Изменение параметров

При том, что изменить значение элементов управления на существующей странице Параметры можно, добавлять, удалять или изменять любой из ее элементов управления или настроек не представляется возможным. Чтобы задать собственные настройки, необходимо создать пользовательскую страницу Параметры. Дополнительные сведения см. в разделе Практическое руководство. Создание пользовательских страниц параметров меню "Сервис".

Изменение значения элемента на странице Параметры осуществляется практически так же, как и просмотр его значения. Следующий пример макроса показывает, как это сделать.

Первый пример (ToolOpt1) переключает логическое значение ReuseSavedActiveDocWindow, приравненное в параметру "Открывать новый файл в том же окне, если текущий сохранен" на странице Документы узла Среда.

' Macro code.
Sub ToolOpt1()
    Dim props As EnvDTE.Properties = DTE.Properties("Environment", _
    "Documents")
    Dim prop As EnvDTE.Property

    prop = props.Item("ReuseSavedActiveDocWindow")
    ' If value is TRUE, change it to FALSE, or vice-versa.
    MsgBox("PROP NAME: " & prop.Name & "   VALUE: " & prop.Value)
    prop.Value = Not (prop.Value)
    MsgBox("PROP NAME: " & prop.Name & "   VALUE: " & prop.Value)
    ' Change it to the original value.
    prop.Value = Not (prop.Value)
End Sub

Следующий пример VSMacro изменяет, а затем сбрасывает значение Размер интервала табуляции в разделе Табуляция на странице Базовые узла Текстовый редактор.

' Macro code.
Sub ToolOpt2()
    Dim props As EnvDTE.Properties = DTE.Properties("TextEditor", _
    "Basic")
    Dim prop As EnvDTE.Property
    Dim tmp As String

    prop = props.Item("TabSize")
    ' Set a new value for Tab Size.
    MsgBox("PROP NAME: " & prop.Name & "   VALUE: " & prop.Value)
    tmp = prop.Value
    prop.Value = 10
    MsgBox("PROP NAME: " & prop.Name & "   VALUE: " & prop.Value)
    ' Change it back to the original value.
    prop.Value = tmp
    MsgBox("PROP NAME: " & prop.Name & "   VALUE: " & prop.Value)
End Sub

Следующий пример VSMacro изменяет параметр на странице Шрифты и цвета узла Среда.

' Macro code.
Sub ToolOpt3()
    ' Changes the background color of text in the Fonts and Colors
    ' page of the Options dialog box on the Tools menu.
    Dim props As EnvDTE.Properties
    Dim prop As EnvDTE.Property
    Dim fontColorItems As EnvDTE.FontsAndColorsItems

    props = DTE.Properties("FontsAndColors", "TextEditor")
    prop = props.Item("FontsAndColorsItems")
    fontColorItems = prop.Object

    Try
        MsgBox("NAME: " & prop.Name & vbCr & "BACKGROUND VALUE: " & _
        CStr(fontColorItems.Item("Plain Text").Background.ToString))
        ' Turn the text background from its current color to red.
        fontColorItems.Item("Plain Text").Background = 255
        MsgBox("NAME: " & prop.Name & vbCr & "BACKGROUND VALUE: " & _
        Hex(fontColorItems.Item("Plain Text").Background.ToString))
    Catch ex As System.Exception
        MsgBox("ERROR: " & ex.Message)
    End Try
End Sub

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

' Macro code.
Sub TurnOnLineNumbers()
   DTE.Properties("TextEditor", "Basic").Item("ShowLineNumbers") _
   .Value = True
   DTE.Properties("TextEditor", "PlainText").Item("ShowLineNumbers") _
   .Value = True
   DTE.Properties("TextEditor", "CSharp").Item("ShowLineNumbers") _
   .Value = True
   DTE.Properties("TextEditor", "HTML/XML").Item("ShowLineNumbers") _
   .Value = True
   DTE.Properties("TextEditor", "C/C++").Item("ShowLineNumbers") _
   .Value = True
   DTE.Properties("TextEditor", "Visual JSharp") _
   .Item("ShowLineNumbers").Value = True
End Sub

Добавление параметров на существующие страницы параметров

В определенный момент может возникнуть необходимость изменить или добавить собственные параметры на страницы диалогового окна Параметры, например, добавить собственные параметры шрифта на страницу Шрифты и цвета. Этого невозможно добиться при помощи модели автоматизации Visual Studio. Следует использовать Visual Studio Industry Partner (программа VSIP). Дополнительные сведения см. на странице Веб-узла партнеров отрасли Visual Studio.

См. также

Задачи

Практическое руководство. Создание пользовательских страниц параметров меню "Сервис"

Практическое руководство. Изменение параметров окон

Практическое руководство. Создание надстройки

Пошаговое руководство. Создание мастера

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

Диаграмма модели объектов автоматизации

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

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

Создание надстроек и мастеров

Справочник по автоматизации и возможностям расширения среды