この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 |
訳文
原文
|
UIHierarchy インターフェイス
データの階層ツリーを利用する、統合開発環境 (IDE: integrated development environment) 内の標準ツール ウィンドウを表します。[ソリューション エクスプローラー]、[サーバー エクスプローラー]、[マクロ エクスプローラー] などがあります。
アセンブリ: EnvDTE (EnvDTE.dll 内)
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