次の方法で共有


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

参照

関連項目

EnvDTE 名前空間

その他の技術情報

方法 : UIHierarchy を使用してツリー ビューを操作する