다음을 통해 공유


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 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 Parent UIHierarchy 개체의 바로 위 부모 개체를 가져옵니다.
Public 속성 SelectedItems 현재 선택한 모든 항목의 컬렉션을 가져옵니다.
Public 속성 UIHierarchyItems 항목의 자식을 나타내는 컬렉션을 가져옵니다.

위쪽

메서드

  이름 설명
Public 메서드 DoDefaultAction 계층에서 사용자가 두 번 클릭하거나 Enter 키를 눌렀을 때와 같은 동작을 수행합니다.
Public 메서드 GetItem 지정된 경로에 명시된 항목을 가져옵니다.
Public 메서드 SelectDown 트리의 현재 확장 상태와 관련하여 현재 선택된 노드 바로 아래에 있는 노드를 선택합니다.
Public 메서드 SelectUp 트리의 현재 확장 상태와 관련하여 현재 선택된 노드 바로 위에 있는 노드를 선택합니다.

위쪽

설명

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

참고 항목

참조

EnvDTE 네임스페이스

기타 리소스

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