Como: Crie e controle ferramenta Windows

Windows em Visual Studio se encaixam em qualquer uma das duas categorias: janelas de documento ou ferramenta janelas.Uma janela do documento é aquele cujo conteúdo é editável pelo Editor de código, sistema autônomo um arquivo de texto, HTML ou código dentro de uma classe.A ferramenta janela contém uma ou mais controles, tais sistema autônomo texto, botões, caixas de combinação e assim por diante.The Visual Studio ambiente de desenvolvimento integrado (IDE) usa controles para executar tarefas sistema autônomo opções de configuração, exibindo erros ou editando elementos de projeto. Alguns exemplos desses são o Saída o janelaLista de tarefas, and the Caixa de ferramentas.The caixa ferramenta podem ser movidos livremente em torno do IDE ou encaixado com os outros ferramenta janelas e você pode usar o LinkedWindows coleção programaticamente vincular ou desvincular ferramenta janelas do IDE. Para obter mais informações, consulte Como: Alterar características de janela.

Juntamente com usando automação para manipular existentes ferramenta janelas, você também pode criar seu próprios personalizada ferramenta janelas usando o CreateToolWindow2 método para o Windows2 coleção.

Observação:

Esse novo método para Visual Studio 2005, substitui o CreateToolWindow método usado no Visual Studio 2002 e Visual Studio 2003.

Criando seu próprio personalizado ferramenta janela você pode preenchê-lo com controles úteis para executar tarefas.Você pode, por exemplo, use um personalizado ferramenta janela para exibir s ferramenta especializados para ajudar a formatar seu código, controlar e alterar configurações da variável, ou executar tarefas avançadas de depuração ou de criação de perfil de fonte.

O procedimento para criar uma personalizada ferramenta janela é:

  • Criar um controle de usuário (usando um projeto Windows Control biblioteca)

  • Adicione os controles desejados em um formulário (botões, caixas de texto e assim por diante) e código.

  • compilar o projeto em uma DLL.

  • Criar um novo Visual Studio projeto suplemento (ou Outros projeto such sistema autônomo um projeto Windows aplicativo).

  • Use o CreateToolWindow2 método para criar um ferramenta janela para hospedar o novo controle de usuário.

Antes de invocar CreateToolWindow2 Para criar uma nova janela de ferramentas, você deve mover tanto o (controle de usuárioControlObject) no mesmo assembly sistema autônomo todos sistema autônomo suplemento, ou conjunto sistema autônomo atributos no controle de usuário para torná-lo totalmente visível para COM. (Por exemplo, verificando o Registrar para interoperabilidade COM opção nas opções de compilar do projeto.) Se você não fizer isso e, em seguida, o controle não será empacotado corretamente e CreateToolWindow2 retornará um valor nulo.

Juntamente com sistema autônomo exemplos abaixo, adicionais ferramenta janela amostras para cada linguagem, bem sistema autônomo outros exemplos de código estão na Exemplos de automação para Visual Studio site.

Observação:

Se você tentar conjunto estados de visibilidade do novo ferramenta janela — sistema autônomo altura, largura ou posição — antes do ferramenta janela estiver visível, você receberá uma mensagem de erro.Certifique-se de que o janela fica visível antes de tentar conjunto essas propriedades.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com Developm geral ENT configurações ativas.Para alterar as configurações, escolher Import and ExportSettings on the Tools menu.Para obter mais informações, consulte Configurações do Visual Studio.

Criando uma janela ferramenta personalizadas

O exemplo a seguir demonstra como criar um ferramenta janela no Visual Basic e Visual C#.

Observação:

O código a seguir deve ser executado em um suplemento; não pode ser executado em uma macro.

Para criar uma personalizada ferramenta janela

  1. criar um controle de usuário em um projeto Windows Control biblioteca.Aceite o nome padrão de "WindowsControlLibrary1", ou certifique-se de que você alterar o nome dosasmPath parâmetro no código a seguir corresponder ao nome do seu projeto Windows controle biblioteca.

    Como alternativa, no seu código, você pode fazer referência a um controle de usuário existente.

  2. Crie um novo projeto suplemento.

    Para obter mais informações, consulte: Como: Criar um suplemento.

  3. Substitua o OnConnection método de suplemento com o seguinte:

    Public Sub OnConnection(ByVal application As Object, ByVal _
    connectMode As ext_ConnectMode, ByVal addInInst As Object, _
    ByRef custom As Array) Implements IDTExtensibility2.OnConnection
        Try
            ' ctlProgID - the ProgID for your user control.
            ' asmPath - the path to your user control DLL.
            ' guidStr - a unique GUID for the user control.
            Dim ctlProgID, asmPath, guidStr As String
            ' Variables for the new tool window that will hold
            ' your user control.
            Dim toolWins As EnvDTE80.Windows2
            Dim toolWin As EnvDTE.Window
            Dim objTemp As Object = Nothing
    
            _applicationObject = CType(application, DTE2)
            _addInInstance = CType(addInInst, AddIn)
            ctlProgID = "WindowsControlLibrary2.UserControl1"
            ' Replace the <Path to VS Project> with the path to
            ' the folder where you created the WindowsCotrolLibrary.
            ' Remove the line returns from the path before 
            ' running the add-in.
            asmPath = "<Path to VS Project>\My _
              Documents\Visual Studio 2005\Projects\ _
              WindowsControlLibrary2\WindowsControlLibrary2\_
              bin\Debug\WindowsControlLibrary2.dll"
            guidStr = "{E9C60F2B-F01B-4e3e-A551-C09C62E5F584}"
    
            toolWins = CType(_applicationObject.Windows, Windows2)
            ' Create the new tool window, adding your user control.
            toolWin = toolWins.CreateToolWindow2(_addInInstance, _
              asmPath, ctlProgID, "MyNewToolwindow", guidStr, objTemp)
            ' The tool window must be visible before you do anything 
            ' with it, or you will get an error.
            If Not toolWins Is Nothing Then
                toolWin.Visible = True
            End If
               ' Uncomment the code below to set the new tool window's
               ' height and width, and to close it.
            ' MsgBox("Setting the height to 500 and width to 400...")
            ' toolWin.Height = 500
            ' toolWin.Width = 400
            ' MsgBox("Closing the tool window...")
            ' toolWin.Close(vsSaveChanges.vsSaveChangesNo)
    
        Catch ex As Exception
            MsgBox("Exception: " & ex.ToString)
        End Try
    End Sub
    
    // Before running, add a reference to System.Windows.Forms, 
    // using System.Windows.Forms, to the top of the class.
    public void OnConnection(object application, 
    ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
        try
        {
            // ctlProgID - the ProgID for your user control.
            // asmPath - the path to your user control DLL.
            // guidStr - a unique GUID for the user control.
            string ctlProgID, asmPath, guidStr;
            // Variables for the new tool window that will hold
            // your user control.
            EnvDTE80.Windows2 toolWins;
            EnvDTE.Window toolWin;
            object objTemp = null;
    
            _applicationObject = (DTE2)application;
            _addInInstance = (AddIn)addInInst;
            ctlProgID = "WindowsControlLibrary2.UserControl1";
            // Replace the <Path to VS Project> with the path to
            // the folder where you created the WindowsCotrolLibrary.
            // Remove the line returns from the path before 
            // running the add-in.
            asmPath = @"c:\My Documents\Visual Studio 2005\Projects\
              WindowsControlLibrary2\WindowsControlLibrary2\bin\
              Debug\WindowsControlLibrary2.dll";
            guidStr = "{E9C60F2B-F01B-4e3e-A551-C09C62E5F584}";
    
            toolWins = (Windows2)_applicationObject.Windows;
            // Create the new tool window, adding your user control.
            toolWin = toolWins.CreateToolWindow2(_addInInstance, 
              asmPath, ctlProgID, "MyNewToolwindow", guidStr, 
              ref objTemp);
            // The tool window must be visible before you do anything 
            // with it, or you will get an error.
            if (toolWins == null)
            {
                toolWin.Visible = true;
            }
            // Uncomment the code below to set the new tool window's
            // height and width, and to close it.
            // System.Windows.Forms.MessageBox.Show("Setting the height 
            // to 500 and width to 400...");
            // toolWin.Height = 500;
            // toolWin.Width = 400;
            // System.Windows.Forms.MessageBox.Show
            //   ("Closing the tool window...");
            // toolWin.Close(vsSaveChanges.vsSaveChangesNo);
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show("Exception: " 
              + ex.Message);
        }
    }
    
  4. Criar e executar o projeto.

  5. Sobre o Ferramentas menu, clicar Gerenciador de suplemento para ativar o suplemento.

Você verá a nova janela de ferramentas flutuante no IDE.Você pode movê-lo para qualquer lugar, como ou encaixá-la com outras janelas de ferramenta.

Consulte também

Tarefas

Como: Alterar características de janela

Como: Criar um suplemento

Demonstra Passo a passo: Criando um assistente

Conceitos

Controlar configurações de opções

Gráfico do modelo de objetos de automação

Outros recursos

Criando e controlando o ambiente Windows

Criando suplementos e assistentes

Automação e referência a extensibilidade