UIHierarchy 接口

表示集成开发环境 (IDE) 中使用数据的层次结构树的标准工具窗口,如**“解决方案资源管理器”“服务器资源管理器”“Macro 资源管理器”**。

命名空间:  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 对象表示任何树视图类型的窗口,所以它是一个窗口对象。 其 UIHierarchyItems 属性返回指定窗口中顶级节点的集合。 在**“解决方案资源管理器”中,只有一个顶级节点,即解决方案节点。 在“Macro 资源管理器”**中,也只有一个顶级节点,即“宏”节点。 这意味着项目节点不在窗口的 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 命名空间

其他资源

如何:使用 UIHierarchy 操作树视图