Condividi tramite


Interfaccia UIHierarchy

Aggiornamento: novembre 2007

Rappresenta le finestre degli strumenti standard dell'ambiente di sviluppo integrato (IDE) che utilizzano una struttura gerarchica di dati, come ad esempio Esplora soluzioni, Esplora server ed Esplora macro.

Spazio dei nomi:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Sintassi

<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

Note

L'oggetto UIHierarchy fornisce un modello a oggetti comune per le finestre degli strumenti standard che presentano dati gerarchici in visualizzazione struttura. È possibile selezionare gli elementi indipendentemente dallo stato di espansione della struttura degli elementi. Se si seleziona un elemento non visualizzato nell'espansione corrente della struttura, quest'ultima verrà espansa per visualizzare l'elemento.

È possibile visualizzare questo oggetto utilizzando Window.Object in una qualsiasi finestra degli strumenti standard con visualizzazione struttura.

Poiché l'oggetto UIHierarchy rappresenta una qualsiasi finestra con visualizzazione struttura, è un oggetto Window. La proprietà UIHierarchyItems restituisce l'insieme dei nodi di primo livello nella finestra specificata. In Esplora soluzioni esiste un solo nodo di primo livello, che corrisponde al nodo della soluzione. Anche in Esplora macro esiste un solo nodo di primo livello, che corrisponde al nodo delle macro. Questo significa che i nodi del progetto non si trovano nell'insieme UIHierarchyItems della finestra, bensì nell'insieme dei nodi di primo livello.

Tenendo presente quanto sopra riportato, vi sono due modi per accedere a un nodo particolare (UIHierarchyItem):

  • Mediante il metodo GetItem per fare direttamente riferimento al nodo desiderato.

  • Mediante UIHierarchyItems.Item.UIHierarchyItems..., un criterio per insieme/elemento/insieme.

    Per passare all'interno della nidificazione dei nodi, continuare a utilizzare questo criterio. Per passare ad esempio al secondo nodo all'interno del nodo di primo livello, utilizzare UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2).

Di seguito vengono riportati alcuni esempi di utilizzo di entrambe le tecniche per accedere a un nodo di livello inferiore.

Esempi

In questo esempio viene utilizzata la strategia del metodo GetItem di accesso a un nodo in un oggetto 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

In questo esempio viene utilizzata la strategia UIHierarchyItems.Item.UIHierarchyItems per accedere a un nodo in un oggetto 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

Vedere anche

Riferimenti

Membri UIHierarchy

Spazio dei nomi EnvDTE

Altre risorse

Procedura: modificare le visualizzazioni struttura mediante UIHierarchy