UIHierarchy インターフェイス
データの階層ツリーを利用する、統合開発環境 (IDE: integrated development environment) 内の標準ツール ウィンドウを表します。[ソリューション エクスプローラー]、[サーバー エクスプローラー]、[マクロ エクスプローラー] などがあります。
名前空間: 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 | 現在展開されているツリーで選択されているノードの、1 つ下のノードを選択します。 | |
SelectUp | 現在展開されているツリーで選択されているノードの、1 つ上のノードを選択します。 |
このページのトップへ
解説
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