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
Altre risorse
Procedura: modificare le visualizzazioni struttura mediante UIHierarchy