Partilhar via


Como: controle Solution Explorer

Solution Explorer é uma janela da ferramenta de Visual Studio ambiente de desenvolvimento integrado (IDE) que exibe o conteúdo de uma solução, que inclui os projetos da solução e itens de cada projeto.Como outras janelas de ferramenta do Visual Studio, você pode controlar seus parâmetros físicos, como tamanho, localização, e se ele está encaixado ou flutuante.Para obter informações sobre como manipular esta janela da ferramenta, bem como outros Visual Studio ferramenta windows, consulte Como: alterar as características da janela.

Solution Explorer não tem sua própria automação objetos como tal, mas você pode controlar o conteúdo de sua hierarquia até certo ponto usando UIHierarchy.Para controlar projetos e itens de projeto na solução, use o modelo de automação do projeto.Para obter mais informações, consulte Controle de projetos e soluções.

ObservaçãoObservação

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritos na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o General Development Settings ativo.Para alterar as configurações, escolha importação e Exportarconfigurações sobre o Ferramentas menu.Para obter mais informações, consulte Configurações de Visual Studio.

Para controlar o Solution Explorer usando o UIHierarchy

  1. Se Solution Explorer não ainda estiver visível, clique em Solution Explorer sobre o Exibir menu.

  2. Abra um projeto que tenha um grande número de elementos, como, por exemplo, um projeto do suplemento.

  3. Em Solution Explorer, clique em um nó que possui pelo menos dois subnós.

  4. Execute o seguinte código.

Exemplo

Este exemplo demonstra como manipular Solution Explorer usando UIHierarchy.

Imports System.Text
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE100Public 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;
using EnvDTE;
using EnvDTE80;
using EnvDTE90;
using EnvDTE100;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());
}

Consulte também

Tarefas

Como: criar um suplemento

Passo a passo: Criando um assistente

Conceitos

Introdução ao objeto VSProject2

Gráfico de modelo de objeto de automação

Outros recursos

Criar e controlar o ambiente Windows

A criação de suplementos e assistentes

Automação e extensibilidade referência