UIHierarchy インターフェイス
更新 : 2007 年 11 月
データの階層ツリーを利用する、統合開発環境 (IDE: integrated development environment) 内の標準ツール ウィンドウを表します。[ソリューション エクスプローラ]、[サーバー エクスプローラ]、[マクロ エクスプローラ] などがあります。
名前空間 : 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) にアクセスするには次の 2 つの方法が考えられます。
GetItem メソッドを使用して、目的のノードを直接参照する。
UIHierarchyItems.Item.UIHierarchyItems... (コレクション/アイテム/コレクション ... というパターン) を使用する。
深い階層にあるノードに移動する場合は、このパターンを繰り返します。たとえば、トップレベル ノードの下の 2 番目のノードに移動するには、UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2) を使用します。
この 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
次の 2 つ目の例では、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