Share via


Cómo: Controlar el Explorador de soluciones

Actualización: noviembre 2007

El Explorador de soluciones es una ventana de herramientas del entorno de desarrollo integrado (IDE) de Visual Studio que muestra el contenido de una solución, el cual incluye proyectos de la solución y elementos de cada proyecto. Como ocurre con otras ventanas de herramientas de Visual Studio, se pueden controlar los parámetros físicos, como el tamaño, la ubicación y si es acoplada o flotante. Para obtener información sobre cómo manipular esta ventana de herramientas, así como otras ventanas de herramientas de Visual Studio, vea Cómo: Cambiar las características de las ventanas.

El Explorador de soluciones no tiene objetos de automatización propios, pero el contenido de la jerarquía de éste se puede controlar hasta cierto punto mediante el objeto UIHierarchy. Para controlar proyectos y elementos de proyecto en la solución, utilice el modelo de automatización de proyecto. Para obtener más información, vea Controlar proyectos y soluciones.

Nota:

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Estos procedimientos se desarrollaron con la Configuración general de desarrollo activa. Para cambiar la configuración, elija la opción Importar y exportarconfiguraciones del menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Para controlar el Explorador de soluciones mediante UIHierarchy

  1. Si el Explorador de soluciones aún no se ve, haga clic en la opción Explorador de soluciones del menú Ver.

  2. Abra un proyecto que tenga muchos elementos, por ejemplo, un proyecto de complemento.

  3. En el Explorador de soluciones, haga clic en un nodo que tenga dos subnodos como mínimo.

  4. Ejecute el siguiente código.

Ejemplo

En este ejemplo se muestra cómo manipular el Explorador de soluciones mediante UIHierarchy.

Imports System.Text
Public Sub OnConnection(ByVal application As Object, ByVal _
  connectMode As ext_ConnectMode, ByVal addInInst As Object, _
  ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    ' Pass the applicationObject member variable to the code example.
    slnExplUIHierarchyExample(_applicationObject)
End Sub

Sub slnExplUIHierarchyExample(ByVal dte As DTE2)
    Dim UIH As UIHierarchy = dte.ToolWindows.SolutionExplorer
    ' Requires a reference to System.Text.
    ' Set a reference to the first level nodes in Solution Explorer. 
    ' Automation collections are one-based.
    Dim UIHItem As UIHierarchyItem = UIH.UIHierarchyItems.Item(1)
    Dim file As UIHierarchyItem
    Dim sb As New StringBuilder

    ' Iterate through first level nodes.
    For Each file In UIHItem.UIHierarchyItems
        sb.AppendLine(file.Name)
        ' Iterate through second level nodes (if they exist).
        Dim subitem As UIHierarchyItem
        For Each subitem In file.UIHierarchyItems
            sb.AppendLine("   " & subitem.Name)
            ' Iterate through third level nodes (if they exist).
            Dim subSubItem As UIHierarchyItem
            For Each subSubItem In subitem.UIHierarchyItems
                sb.AppendLine("        " & subSubItem.Name)
            Next
        Next
    Next
    MsgBox(sb.ToString)
 End Sub
using System.Text;
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    slnExplUIHierarchyExample(_applicationObject);
}

public void slnExplUIHierarchyExample(DTE2 dte)
{
    UIHierarchy UIH = dte.ToolWindows.SolutionExplorer;
    // Requires a reference to System.Text.
    // Set a reference to the first level nodes in Solution Explorer. 
    // Automation collections are one-based.
    UIHierarchyItem UIHItem = UIH.UIHierarchyItems.Item(1);
    StringBuilder sb = new StringBuilder();

    // Iterate through first level nodes.
    foreach ( UIHierarchyItem fid in UIHItem.UIHierarchyItems )
    {
        sb.AppendLine(fid.Name);
        // Iterate through second level nodes (if they exist).
        foreach ( UIHierarchyItem subitem in fid.UIHierarchyItems )
        {
            sb.AppendLine("   "+subitem.Name);
            // Iterate through third level nodes (if they exist).
            foreach ( UIHierarchyItem subSubItem in 
              subitem.UIHierarchyItems )
            {
                sb.AppendLine("        "+subSubItem.Name);
            }
        }
    }
    System.Windows.Forms.MessageBox.Show(sb.ToString());
}

Vea también

Tareas

Cómo: Crear un complemento

Tutorial: Crear un asistente

Conceptos

Introducción al objeto VSProject2

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