控制选项设置
您可以编写代码来激活或停用**“选项”**对话框中的页面(以下简称为“选项页”)上的许多设置。只需使用 Visual Studio 自动化模型中的 DTE 对象的 Properties 属性、Value 属性以及 Item 方法。
说明 |
---|
虽然可以编程方式访问许多“选项”页上的很多项,但某些页面可能包含无法访问的项。此外,“选项”页本身也可能无法访问。如果您无法使用自动化模型影响设置,则可使用 Visual Studio SDK 执行此操作。有关更多信息,请参见本文档后面的“将设置添加到现有选项页”。有关可以编程方式访问的选项及其确切名称的列表,请参见确定“选项”页中属性项的名称中的“属性项名称”。 |
若要在集成开发环境 (IDE) 中打开**“选项”对话框,请在“工具”菜单上单击“选项”**。
显示选项设置
使用 Properties 集合和 Property 对象来访问**“选项”**页上的设置。下面的 Visual Studio 示例显示名称、当前值和类型项目中 文档 页。
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
下面的示例演示在 选项 页上的可用属性 任务列表 (在 环境 节点下)。它还列出了注释的 标记列表的可用值。
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#”下)的“选项”**页的可编程设置。
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 的布尔值,此值是**“环境”节点下“文档”页上“重用当前文档窗口(如果已保存)”**选项的名称。
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
下面的示例更改然后重置在 基本 页的 选项卡 部分的 制表符大小 值。文本编辑器 节点下。
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
此示例更改设置在 字体和颜色 页在 环境 节点下。
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
此示例打开多种语言的行号。文本编辑器 节点。
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 SDK。有关更多信息,请参见Development Tools Ecosystem Partner Portal(开发工具生态系统合作伙伴门户)网站。