Share via


UIHierarchy 인터페이스

업데이트: 2007년 11월

솔루션 탐색기, 서버 탐색기, 매크로 탐색기 등과 같이 계층 구조로 된 데이터 트리를 사용하는 표준 도구 창을 IDE(통합 개발 환경)에 나타냅니다.

네임스페이스:  EnvDTE
어셈블리:  EnvDTE(EnvDTE.dll)

구문

<GuidAttribute("72A2A2EF-C209-408C-A377-76871774ADB7")> _
Public Interface UIHierarchy

Dim instance As UIHierarchy
[GuidAttribute("72A2A2EF-C209-408C-A377-76871774ADB7")]
public interface UIHierarchy
[GuidAttribute(L"72A2A2EF-C209-408C-A377-76871774ADB7")]
public interface class UIHierarchy
public interface UIHierarchy

설명

UIHierarchy 개체는 트리 뷰에 계층 구조 데이터를 표시하는 표준 도구 창에 공용 개체 모델을 제공합니다. 항목이 트리의 확장 상태에서 표시되는지 여부에 관계없이 항목을 선택할 수 있습니다. 현재 트리 확장에서 표시되지 않는 항목을 선택하면 항목 표시를 위해 트리가 확장됩니다.

표준 트리 뷰 도구 창에서 Window.Object를 사용하여 이 개체를 가져옵니다.

UIHierarchy 개체는 트리 뷰 형식의 창을 나타내므로 Window 개체입니다. 이 개체의 UIHierarchyItems 속성은 지정된 창의 최상위 노드 컬렉션을 반환합니다. 솔루션 탐색기에는 최상위 노드(솔루션)가 하나뿐이고 매크로 탐색기에도 최상위 노드(매크로 노드)가 하나뿐입니다. 즉, 프로젝트 노드는 창의 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

참고 항목

참조

UIHierarchy 멤버

EnvDTE 네임스페이스

기타 리소스

방법: UIHierarchy를 사용하여 트리 뷰 조작