UIHierarchy, interface

Mise à jour : novembre 2007

Représente les fenêtres Outil standard dans l'environnement de développement intégré (IDE, Integrated Development Environment) qui utilisent des arborescences hiérarchiques de données, comme l'Explorateur de solutions, l'Explorateur de serveurs et l'Explorateur de macros.

Espace de noms :  EnvDTE
Assembly :  EnvDTE (dans EnvDTE.dll)

Syntaxe

<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

Notes

L'objet UIHierarchy fournit un modèle objet commun pour les fenêtres Outil standard qui présentent les données hiérarchiques sous forme d'arborescence. Vous pouvez sélectionner des éléments quel que soit l'état de développement de l'arborescence. Si vous sélectionnez un élément qui n'apparaît pas dans l'arborescence en cours, celle-ci se développe de manière à l'afficher.

Vous pouvez obtenir cet objet en appliquant Window.Object à n'importe quelle fenêtre Outil standard de l'arborescence.

Étant donné que l'objet UIHierarchy représente toute fenêtre de type arborescence, il s'agit d'un objet Window. Sa propriété UIHierarchyItems retourne la collection de nœuds de niveau supérieur de la fenêtre spécifiée. Dans l'Explorateur de solutions, il y a un seul nœud de niveau supérieur, la solution. Dans l'Explorateur de macros, il y a également un seul nœud de niveau supérieur, le nœud Macros. De ce fait, les nœuds de projets ne se trouvent pas dans la collection UIHierarchyItems de la fenêtre, mais dans la collection du nœud de niveau supérieur.

Sachant cela, il existe deux moyens d'accéder à un nœud particulier (UIHierarchyItem) :

  • Utilisez la méthode GetItem pour référencer directement le nœud souhaité.

  • Utilisez UIHierarchyItems.Item.UIHierarchyItems... (un modèle collection/élément/collection...).

    Pour descendre davantage dans la hiérarchie d'un nœud, continuez à utiliser ce modèle. Par exemple, pour atteindre le deuxième nœud placé sous le nœud de niveau supérieur, vous pouvez utiliser UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2).

Vous trouverez ci-dessous des exemples d'utilisation de ces deux techniques pour accéder à un nœud de niveau inférieur.

Exemples

Cet exemple utilise la méthode GetItem pour accéder à un nœud dans un objet 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

Cet exemple utilise la méthode UIHierarchyItems.Item.UIHierarchyItems pour accéder à un nœud dans un objet 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

Voir aussi

Référence

Membres UIHierarchy

EnvDTE, espace de noms

Autres ressources

Comment : manipuler des arborescences à l'aide de l'objet UIHierarchy