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