Поделиться через


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

См. также

Ссылки

EnvDTE - пространство имен

Другие ресурсы

Практическое руководство. Управление представлениями в виде дерева с помощью объекта UIHierarchy