Управление параметрами
Обновлен: Ноябрь 2007
Параметры на различных страницах диалогового окна Параметры меню Сервис (далее — "Страницы параметров") можно включить или отключить. Просто используйте свойства Properties и Value и метод Item объекта DTE в модели автоматизации Visual Studio.
Примечание. |
---|
Некоторые элементы на страницах диалогового окна Параметры не доступны программно. Многие элементы, такие как Список маркеров комментариев на странице параметров списка задач можно просмотреть или изменить программными способами. Однако некоторые страницы диалогового окна Параметры, например, страница Динамическая справка под узлом Справка на странице Среда, не допускают этого. Кроме того, в то время, как некоторые страницы диалогового окна Параметры имеют программируемые настройки, другие элементы на странице совсем не обязательно будут доступны. Если оказывается, что параметр не поддается изменению, то можно попробовать изменить его при помощи 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.
См. также
Задачи
Практическое руководство. Создание пользовательских страниц параметров меню "Сервис"
Практическое руководство. Изменение параметров окон
Практическое руководство. Создание надстройки
Пошаговое руководство. Создание мастера
Основные понятия
Диаграмма модели объектов автоматизации