Compartir a través de


Controlar la configuración de opciones

Actualización: noviembre 2007

Puede activar o desactivar la configuración de las distintas páginas en el cuadro de diálogo Opciones del menú Herramientas (de ahora en adelante, "páginas de opciones"). Simplemente utilice las propiedades Properties y Value y el método Item del objeto DTE del modelo de automatización de Visual Studio.

Nota:

No se puede obtener acceso mediante programación a ciertos elementos de algunas páginas de opciones. La mayoría de los elementos, por ejemplo, la Lista de símbolos de comentario en la página de opciones de la lista de tareas, se pueden ver o cambiar mediante programación. Sin embargo, algunas páginas de opciones, como la página Ayuda dinámica, que está en el nodo Ayuda de la página Entorno, no se pueden ver o cambiar mediante programación. Además, si bien algunas páginas de opciones tienen configuración programable, no necesariamente se puede obtener acceso a todos los elementos de la página. Si no puede modificar una configuración, es posible que deba utilizar el Programa Visual Studio Industry Partner para hacerlo. Para obtener más información, vea la sección "Agregar configuración a las páginas de opciones existentes" más adelante en este tema. Para obtener una lista completa de las opciones a las que se puede obtener acceso mediante programación y los nombres exactos de éstas, vea "Nombres de elementos de propiedades" en Determinar los nombres de los elementos de propiedades en las páginas de opciones.

Mostrar la configuración de opciones

Utilice la colección Properties y el objeto Property para tener acceso a la configuración de una página de opciones existente. En el ejemplo de VSMacro que aparece a continuación se muestran todos los nombres y valores actuales de todos los elementos de la página de opciones de documentos.

' 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

En el ejemplo de VSMacro que aparece a continuación se muestran todas las propiedades disponibles en la página de opciones de la Lista de tareas ubicada bajo el nodo Entorno. También muestra todos los valores disponibles para obtener la Lista de símbolos de comentario.

' 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

En este ejemplo se muestra toda la configuración programable de la página de opciones en Editor de texto | C# | Formato.

' 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

Cambiar la configuración de opciones

Si bien puede cambiar el valor de los controles en una página de opciones existente, no puede agregar, quitar ni modificar ninguno de sus controles o configuración. Para especificar una configuración propia, debe crear una página de opciones personalizada. Para obtener más información, vea Cómo: Crear páginas de opciones de herramientas personalizadas.

Cambiar el valor de un elemento de una página de opciones es muy similar a mostrar su valor. Los siguientes ejemplos de macros muestran cómo hacerlo.

El primer ejemplo (ToolOpt1) alterna el valor booleano de ReuseSavedActiveDocWindow, que equivale a la opción "Reutilizar el documento activo si se guardó" de la página Documentos del nodo Entorno.

' 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

En el ejemplo de VSMacro que aparece a continuación se cambia y luego se restablece el valor Tamaño de tabulación en la sección Tabulaciones de la página Básico del nodo Editor de texto.

' 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

En este ejemplo de VSMacro se cambia una configuración en la página Fuentes y colores del nodo Entorno.

' 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

En este ejemplo de VSMacro se activan los números de línea de los distintos lenguajes en el nodo Editor de texto del cuadro de diálogo Opciones.

' 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

Agregar configuración a las páginas de opciones existentes

En algún momento, es posible que desee modificar o agregar una configuración propia a las páginas de opciones existentes, como por ejemplo agregar una configuración de fuentes propia a la página Fuentes y colores. Esto no se puede realizar mediante el modelo de automatización de Visual Studio. Debe utilizar el Programa Visual Studio Industry Partner. Para obtener más información, vea el sitio web de Visual Studio Industry Partner.

Vea también

Tareas

Cómo: Crear páginas de opciones de herramientas personalizadas

Cómo: Cambiar las características de las ventanas

Cómo: Crear un complemento

Tutorial: Crear un asistente

Conceptos

Gráfico del modelo de objetos de automatización

Otros recursos

Crear y controlar las ventanas del entorno

Crear complementos y asistentes

Referencia de automatización y extensibilidad