共用方式為


UIHierarchy 介面

更新:2007 年 11 月

代表整合式開發環境 (IDE) 中使用階層式樹狀資料的標準工具視窗,例如 [方案總管]、[伺服器總管] 以及 [巨集總管]。

命名空間:  EnvDTE
組件:  EnvDTE (在 EnvDTE.dll 中)

語法

<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

備註

UIHierarchy 物件提供代表樹狀檢視中階層式資料之標準工具視窗的通用物件模型。您可以選取項目,無論樹狀目錄的展開狀態是否顯示該項目。選取目前未顯示在展開樹狀目錄中的項目會使樹狀目錄顯示該項目。

您可以在任何標準的樹狀檢視工具視窗中使用 Window.Object 取得此物件。

由於 UIHierarchy 物件代表任何樹狀檢視類型視窗,它是視窗 (Windows) 物件。它的 UIHierarchyItems 屬性會傳回指定視窗中最上層節點的集合。在 [方案總管中],只有一個最上層節點,也就是方案。在 [巨集總管中],也只有一個最上層節點,亦即巨集節點。這表示,專案節點不在視窗的 UIHierarchyItems 集合中,而是在最上層節點的集合中。

請注意,有兩種方法可以存取特定節點 (UIHierarchyItem):

  • 使用 GetItem 方法直接參考所需的節點。

  • 使用 UIHierarchyItems.Item.UIHierarchyItems... (集合/項目/集合...模式)。

    若要更深一層巡覽至節點巢狀結構,請繼續使用這個模式。例如,若要巡覽至最上層節點之下的第二個節點,請使用 UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2)。

下列範例將說明如何使用這兩種技術存取較低層的節點。

範例

這個範例會使用 GetItem 方法策略,存取 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

這個範例會使用 UIHierarchyItems.Item.UIHierarchyItems 策略,存取 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

請參閱

參考

UIHierarchy 成員

EnvDTE 命名空間

其他資源

HOW TO:使用 UIHierarchy 管理樹狀檢視