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 | В иерархии выполняет такое же действие, как при двойном щелчке мышью или нажатии кнопки ВВОД. | |
GetItem | Возвращает элемент, находящийся по указанному пути. | |
SelectDown | Выделяет узел, находящийся непосредственно под узлом, который выделен в настоящий момент, в соответствии с тем, как дерево развернуто в настоящий момент. | |
SelectUp | Выделяет узел, находящийся непосредственно над узлом, который выделен в настоящий момент, в соответствии с тем, как дерево развернуто в настоящий момент. |
В начало страницы
Заметки
Объект UIHierarchy предоставляет общую объектную модель для стандартных окон инструментов, представляющих иерархические данные в виде дерева. Элементы можно выбирать вне зависимости от того, отображаются ли они раскрытым деревом в данный момент. При выборе элемента, не отображенного в текущий момент, дерево разворачивается для его отображения.
Чтобы получить этот объект, используется метод Window.Object вместе с любым стандартным древовидным окном инструментов.
Так как объект UIHierarchy представляет любое окно с деревом, он является объектом Window. Его свойство UIHierarchyItems возвращает коллекцию узлов верхнего уровня указанного окна. В Обозревателе решений узлом верхнего уровня является только один узел — решение. В Обозревателе макросов узлом верхнего уровня является только один узел — макрос. Это значит, что узлы проекта принадлежат коллекции узлов верхнего уровня, а не коллекции окна UIHierarchyItems.
Исходя из этого, существует два способа получения доступа к определенному узлу (UIHierarchyItem):
С помощью метода GetItem для непосредственной ссылки на нужный узел.
Используйте UIHierarchyItems.Item.UIHierarchyItems... (коллекцию или шаблон элемента или коллекции…).
Чтобы переходить дальше по вложенным узлам, просто продолжайте использовать указанный шаблон. Например, чтобы перейти ко второму узлу от узла верхнего уровня, следует использовать UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2).
Далее приведены примеры использования обеих способов для получения доступа к узлу нижнего уровня.
Примеры
В этом примере для доступа к узлу в UIHierarchy используется метод GetItem.
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
В этом примере для доступа к узлу в UIHierarchy используется метод UIHierarchyItems.Item.UIHierarchyItems.
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