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