UIHierarchy-Schnittstelle

Aktualisiert: November 2007

Stellt in der integrierten Entwicklungsumgebung (IDE) Standardtoolfenster dar, die hierarchische Datenstrukturen verwenden. Dazu gehören der Projektmappen-Explorer, der Server-Explorer und der Makro-Explorer.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

<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

Hinweise

Das UIHierarchy-Objekt stellt ein allgemeines Objektmodell für Standardtoolfenster bereit, in denen hierarchische Daten in einer Strukturansicht angezeigt werden. Sie können Elemente unabhängig davon auswählen, ob sie im erweiterten Zustand der Struktur angezeigt werden. Bei Auswahl eines Elements, das in der aktuellen Strukturerweiterung nicht angezeigt ist, wird die Struktur zum Anzeigen dieses Elements erweitert.

Dieses Objekt können Sie in jedem Standardtoolfenster mit Strukturansicht über Window.Object abrufen.

Da mit dem UIHierarchy-Objekt jedes Fenster mit Strukturansicht dargestellt werden kann, handelt es sich um ein Window-Objekt. Die UIHierarchyItems-Eigenschaft gibt die Auflistung der Knoten auf oberster Ebene im angegebenen Fenster zurück. Im Projektmappen-Explorer gibt es nur einen einzelnen Knoten auf oberster Ebene, die Projektmappe. Im Makro-Explorer gibt es ebenfalls nur einen Knoten auf oberster Ebene, den Knoten Makros. Die Projektknoten befinden sich also nicht in der UIHierarchyItems-Auflistung des Fensters, sondern in der Auflistung des Knotens auf oberster Ebene.

Daher gibt es zwei Möglichkeiten, auf einen bestimmten Knoten (UIHierarchyItem) zuzugreifen:

  • Direktes Verweisen mit der GetItem-Methode auf den gewünschten Knoten

  • Verwenden von UIHierarchyItems.Item.UIHierarchyItems... (ein Muster in der Form Auflistung/Element/Auflistung)

    Wenn Sie zu einem tiefer geschachtelten Knoten navigieren möchten, setzen Sie dieses Muster fort. Um beispielsweise zum zweiten Knoten unter dem Knoten auf oberster Ebene zu navigieren, verwenden Sie UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2).

Die folgenden Beispiele veranschaulichen beide Verfahren für den Zugriff auf einen untergeordneten Knoten.

Beispiele

In diesem Beispiel wird die Strategie der GetItem-Methode verwendet, um auf einen Knoten in einer UIHierarchy zuzugreifen.

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

Dieses Beispiel verwendet die UIHierarchyItems.Item.UIHierarchyItems-Strategie, um auf einen Knoten in einer UIHierarchy zuzugreifen.

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

Siehe auch

Referenz

UIHierarchy-Member

EnvDTE-Namespace

Weitere Ressourcen

Gewusst wie: Verändern von Strukturansichten mithilfe von UIHierarchy