Procedura: controllare Esplora soluzioni

Aggiornamento: novembre 2007

Esplora soluzioni è una finestra degli strumenti dell'ambiente di sviluppo integrato (IDE) di Visual Studio in cui viene visualizzato il contenuto di una soluzione, inclusi i progetti e i relativi elementi. Analogamente ad altre finestre degli strumenti di Visual Studio è possibile controllarne i parametri fisici, quali dimensione, posizione ed eventuale ancoraggio. Per informazioni su come modificare questa e altre finestre degli strumenti di Visual Studio, vedere Procedura: modificare le caratteristiche delle finestre.

Esplora soluzioni non dispone di propri oggetti di automazione, tuttavia è possibile controllare fino a un certo punto il contenuto della gerarchia utilizzando l'oggetto UIHierarchy. Per controllare i progetti e gli elementi dei progetti della soluzione, utilizzare il modello di automazione del progetto. Per ulteriori informazioni, vedere Controllo di progetti e soluzioni.

Nota:

Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni attive. Queste routine sono state sviluppate con le Impostazioni generali per lo sviluppo attive. Per modificare le impostazioni, scegliere Importa/EsportaImpostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Per controllare Esplora soluzioni tramite UIHierarchy

  1. Se Esplora soluzioni non è visibile, scegliere Esplora soluzioni dal menu Visualizza.

  2. Aprire un progetto che dispone di un numero elevato di elementi, ad esempio un progetto di componente aggiuntivo.

  3. In Esplora soluzioni fare clic su un nodo che disponga di almeno due sottonodi.

  4. Eseguire il codice riportato di seguito.

Esempio

In questo esempio viene illustrato come modificare Esplora soluzioni tramite l'oggetto UIHierarchy.

Imports System.Text
Public Sub OnConnection(ByVal application As Object, ByVal _
  connectMode As ext_ConnectMode, ByVal addInInst As Object, _
  ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    ' Pass the applicationObject member variable to the code example.
    slnExplUIHierarchyExample(_applicationObject)
End Sub

Sub slnExplUIHierarchyExample(ByVal dte As DTE2)
    Dim UIH As UIHierarchy = dte.ToolWindows.SolutionExplorer
    ' Requires a reference to System.Text.
    ' Set a reference to the first level nodes in Solution Explorer. 
    ' Automation collections are one-based.
    Dim UIHItem As UIHierarchyItem = UIH.UIHierarchyItems.Item(1)
    Dim file As UIHierarchyItem
    Dim sb As New StringBuilder

    ' Iterate through first level nodes.
    For Each file In UIHItem.UIHierarchyItems
        sb.AppendLine(file.Name)
        ' Iterate through second level nodes (if they exist).
        Dim subitem As UIHierarchyItem
        For Each subitem In file.UIHierarchyItems
            sb.AppendLine("   " & subitem.Name)
            ' Iterate through third level nodes (if they exist).
            Dim subSubItem As UIHierarchyItem
            For Each subSubItem In subitem.UIHierarchyItems
                sb.AppendLine("        " & subSubItem.Name)
            Next
        Next
    Next
    MsgBox(sb.ToString)
 End Sub
using System.Text;
public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    slnExplUIHierarchyExample(_applicationObject);
}

public void slnExplUIHierarchyExample(DTE2 dte)
{
    UIHierarchy UIH = dte.ToolWindows.SolutionExplorer;
    // Requires a reference to System.Text.
    // Set a reference to the first level nodes in Solution Explorer. 
    // Automation collections are one-based.
    UIHierarchyItem UIHItem = UIH.UIHierarchyItems.Item(1);
    StringBuilder sb = new StringBuilder();

    // Iterate through first level nodes.
    foreach ( UIHierarchyItem fid in UIHItem.UIHierarchyItems )
    {
        sb.AppendLine(fid.Name);
        // Iterate through second level nodes (if they exist).
        foreach ( UIHierarchyItem subitem in fid.UIHierarchyItems )
        {
            sb.AppendLine("   "+subitem.Name);
            // Iterate through third level nodes (if they exist).
            foreach ( UIHierarchyItem subSubItem in 
              subitem.UIHierarchyItems )
            {
                sb.AppendLine("        "+subSubItem.Name);
            }
        }
    }
    System.Windows.Forms.MessageBox.Show(sb.ToString());
}

Vedere anche

Attività

Procedura: creare un componente aggiuntivo

Procedura dettagliata: creazione di una procedura guidata

Concetti

Introduzione all'oggetto VSProject2

Grafico del modello oggetto di automazione

Altre risorse

Creazione e controllo delle finestre di ambiente

Creazione di componenti aggiuntivi e di procedure guidate

Riferimenti su extensibility e automazione