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
Weitere Ressourcen
Gewusst wie: Verändern von Strukturansichten mithilfe von UIHierarchy