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... (шаблон collection/item/collection... ).
Чтобы переходить дальше по вложенным узлам, просто продолжайте использовать указанный шаблон. Например, чтобы перейти ко второму узлу от узла верхнего уровня, следует использовать 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