Share via


UIHierarchy 介面

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

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

語法

'宣告
<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

UIHierarchy 型別會公開下列成員。

屬性

  名稱 說明
公用屬性 DTE 取得最上層的擴充性物件。
公用屬性 Parent 取得 UIHierarchy 物件的直接上層父物件。
公用屬性 SelectedItems 取得所有目前選取項目的集合。
公用屬性 UIHierarchyItems 取得代表項目子系的集合。

回頁首

方法

  名稱 說明
公用方法 DoDefaultAction 在階層架構中執行和使用者按兩下或按下 ENTER 鍵時相同的動作。
公用方法 GetItem 取得特定路徑指定的項目。
公用方法 SelectDown 依據樹狀目錄目前展開的狀態,選取目前選取之節點下方緊鄰的節點。
公用方法 SelectUp 依據樹狀目錄目前的展開狀態,選取目前選取之節點上方緊鄰的節點。

回頁首

備註

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

請參閱

參考

EnvDTE 命名空間

其他資源

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