Partager via


Comment : contrôler l'Explorateur de solutions

Mise à jour : novembre 2007

L'Explorateur de solutions est une fenêtre Outil de l'environnement de développement intégré (IDE) de Visual Studio. Elle affiche le contenu d'une solution, notamment les projets de la solution et les éléments de chaque projet. Comme pour les autres fenêtres Outil de Visual Studio, vous pouvez en contrôler les paramètres physiques, notamment sa taille, son emplacement et sa nature ancrée ou flottante. Pour plus d'informations sur la manipulation de cette fenêtre Outil et des autres fenêtres Outils Visual Studio, consultez Comment : modifier les caractéristiques d'une fenêtre.

En tant que tel, l'Explorateur de solutions n'a pas ses propres objets Automation. Vous pouvez cependant, dans une certaine mesure, contrôler le contenu de sa hiérarchie en utilisant UIHierarchy. Pour contrôler des projets et des éléments de projet dans la solution, utilisez le modèle Automation de projet. Pour plus d'informations, consultez Contrôle de projets et de solutions.

Remarque :

Selon vos paramètres actifs ou votre édition, les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide. Ces procédures ont été développées avec les paramètres de développement généraux actifs. Pour modifier vos paramètres, sélectionnez Importer et ExporterParamètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour contrôler l'Explorateur de solutions à l'aide de UIHierarchy

  1. Si l'Explorateur de solutions n'est pas déjà visible, cliquez sur Explorateur de solutions dans le menu Affichage.

  2. Ouvrez un projet qui présente un grand nombre d'éléments ; par exemple, un projet de complément.

  3. Dans l'Explorateur de solutions, cliquez sur un nœud qui dispose d'au moins deux sous-nœuds.

  4. Exécutez le code ci-dessous.

Exemple

Cet exemple montre comment manipuler l'Explorateur de solutions à l'aide de 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());
}

Voir aussi

Tâches

Comment : créer un complément

Procédure pas à pas : création d'un Assistant

Concepts

Introduction à l'objet VSProject2

Graphique Modèle d'objet Automation

Autres ressources

Création et contrôle de fenêtres d'environnement

Création de compléments et d'Assistants

Guide de référence de l'extensibilité et de l'automation