UIHierarchy (Interfaz)

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

'Declaración
<GuidAttribute("72A2A2EF-C209-408C-A377-76871774ADB7")> _
Public Interface UIHierarchy
[GuidAttribute("72A2A2EF-C209-408C-A377-76871774ADB7")]
public interface UIHierarchy
[GuidAttribute(L"72A2A2EF-C209-408C-A377-76871774ADB7")]
public interface class UIHierarchy
[<GuidAttribute("72A2A2EF-C209-408C-A377-76871774ADB7")>]
type UIHierarchy =  interface end
public interface UIHierarchy

El tipo UIHierarchy expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública DTE Obtiene el objeto de extensibilidad de nivel superior.
Propiedad pública Parent Obtiene el objeto primario inmediato de un objeto UIHierarchy.
Propiedad pública SelectedItems Obtiene una colección de todos los elementos seleccionados actualmente.
Propiedad pública UIHierarchyItems Obtiene una colección que representa elementos secundarios del elemento.

Arriba

Métodos

  Nombre Descripción
Método público DoDefaultAction En la jerarquía, realiza la misma acción que si el usuario hubiera hecho doble clic o hubiera presionado la tecla ENTRAR.
Método público GetItem Obtiene el elemento designado por la ruta de acceso dada.
Método público SelectDown Selecciona el nodo inmediatamente inferior al actualmente seleccionado con respecto al estado de expansión actual del árbol.
Método público SelectUp Selecciona el nodo inmediatamente superior al actualmente seleccionado con respecto al estado de expansión actual del árbol.

Arriba

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... (un modelo colección/elemento/colección.... ).

    Para navegar en mayor profundidad en el anidamiento de un nodo, siga usando este patrón. Por ejemplo, para navegar 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

EnvDTE (Espacio de nombres)

Otros recursos

Cómo: Manipular vistas de árbol mediante UIHierarchy