UIHierarchy (Interfaz)

Actualización: noviembre 2007

Representa las ventanas de herramientas estándar del entorno de desarrollo integrado (IDE) que utilizan árboles de datos jerárquicos, como el Explorador de soluciones, el Explorador de servidores y el Explorador de macros.

Espacio de nombres:  EnvDTE
Ensamblado:  EnvDTE (en EnvDTE.dll)

Sintaxis

<GuidAttribute("72A2A2EF-C209-408C-A377-76871774ADB7")> _
Public Interface UIHierarchy

Dim instance As UIHierarchy
[GuidAttribute("72A2A2EF-C209-408C-A377-76871774ADB7")]
public interface UIHierarchy
[GuidAttribute(L"72A2A2EF-C209-408C-A377-76871774ADB7")]
public interface class UIHierarchy
public interface UIHierarchy

Comentarios

El objeto UIHierarchy proporciona un modelo de objetos común para las ventanas de herramientas estándar que presentan los datos jerárquicos en una vista de árbol. Puede seleccionar elementos independientemente de que el estado de expansión del árbol muestre el elemento. Al seleccionar un elemento que no aparece en la expansión de árbol actual, el árbol se expande para mostrarlo.

Este objeto se obtiene mediante Window.Object en cualquiera de las ventanas de herramientas estándar de vista de árbol.

Puesto que el objeto UIHierarchy representa cualquier ventana de tipo vista de árbol, se trata de un objeto Window. Su propiedad UIHierarchyItems devuelve la colección de nodos de nivel superior de la ventana especificada. En el Explorador de soluciones sólo hay un nodo de nivel superior, la solución. En el Explorador de macros sólo hay también un nodo de nivel superior, el nodo Macros. Esto significa que los nodos del proyecto no se encuentran en la colección UIHierarchyItems de la ventana, sino en la colección del nodo de nivel superior.

Teniendo esto en cuenta, hay dos maneras de obtener acceso a un nodo concreto (UIHierarchyItem):

  • Utilizar el método GetItem para hacer referencia directa al nodo deseado.

  • Utilizar UIHierarchyItems.Item.UIHierarchyItems... (colección/elemento/colección... modelo).

    Para tener un mayor conocimiento sobre el anidamiento de un nodo, siga usando este patrón. Por ejemplo, para desplazarse hasta el segundo nodo por debajo del nodo de nivel superior, utilice UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2).

A continuación se muestran ejemplos acerca de cómo usar ambas técnicas para obtener acceso a un nodo de nivel inferior.

Ejemplos

En este ejemplo se utiliza la estrategia del método GetItem para obtener acceso a un nodo de UIHierarchy.

Sub UIHierarchyExample1()
   'Reference the UIHierarchy, UIHierarchyItem, and OutputWindow objects.
   Dim UIH As UIHierarchy = _
     DTE.Windows.Item(Constants.vsWindowKindMacroExplorer).Object
   Dim samples As UIHierarchyItem = UIH.GetItem("Macros\Samples")
   Dim OWPane As OutputWindowPane = GetOutputWindowPane("List Macros")
   Dim file As UIHierarchyItem

   OWPane.Clear()
   For Each file In samples.UIHierarchyItems
      OWPane.OutputString(file.Name & _
        Microsoft.VisualBasic.Constants.vbCrLf)
      Dim macro As UIHierarchyItem
      For Each macro In file.UIHierarchyItems
         OWPane.OutputString("   " & macro.Name & _
           Microsoft.VisualBasic.Constants.vbCrLf)
      Next
   Next
End Sub

Function GetOutputWindowPane(ByVal Name As String, Optional ByVal show _
  As Boolean = True) As OutputWindowPane
   Dim win As Window = _
     DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
   If show Then win.Visible = True
   Dim ow As OutputWindow = win.Object
   Dim owpane As OutputWindowPane
   Try
      owpane = ow.OutputWindowPanes.Item(Name)
   Catch e As System.Exception
      owpane = ow.OutputWindowPanes.Add(Name)
   End Try
   owpane.Activate()
   Return owpane
End Function

En este ejemplo se utiliza la estrategia UIHierarchyItems.Item.UIHierarchyItems para obtener acceso a un nodo de UIHierarchy.

Sub UIHierarchyExample2()
   Dim UIH As UIHierarchy = _
     DTE.Windows.Item(Constants.vsWindowKindMacroExplorer).Object
     ' Set a reference to the "Samples" node in Macro Explorer. The 
     ' collections are one-based.
     Dim UIHItem As UIHierarchyItem = _
     UIH.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2)
   Dim file As UIHierarchyItem
   Dim OWPane As OutputWindowPane = GetOutputWindowPane("List Macros")
   For Each file In UIHItem.UIHierarchyItems
      OWPane.OutputString(file.Name & _
        Microsoft.VisualBasic.Constants.vbCrLf)
      Dim macro As UIHierarchyItem
      For Each macro In file.UIHierarchyItems
         OWPane.OutputString("   " & macro.Name & _
           Microsoft.VisualBasic.Constants.vbCrLf)
      Next
   Next
End Sub

Vea también

Referencia

UIHierarchy (Miembros)

EnvDTE (Espacio de nombres)

Otros recursos

Cómo: Manipular vistas de árbol mediante UIHierarchy