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


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

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

Примечание

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

Чтобы открыть диалоговое окно Параметры в интегрированной среде разработки, в меню Сервис выберите пункт Параметры.

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

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

' 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
            Try
                msg += ("PROP NAME: " & prop.Name & _ 
                " VALUE: " & prop.Value) & _
                "   TYPE: " & prop.Value.GetType.ToString()) & vbCr
            Catch
            End Try
    Next
    MsgBox(msg)
End Sub

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

' 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

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

Можно не только отобразить значение параметра на странице Параметры, но также изменить это значение. В следующем примере макроса Visual Studio показано, как это сделать.

Примечание

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

Первый пример (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

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

' 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

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

' 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

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

' 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 не предусматривает возможности добавления параметров на существующую страницу Параметры или изменения существующих параметров. Для внесения подобных изменений необходимо использовать SDK для Visual Studio. Дополнительные сведения см. на веб-сайте Development Tools Ecosystem Partner Portal.

См. также

Задачи

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

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

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

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

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

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

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

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

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

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