Adicionar controles do Windows Forms a documentos do Office

Você pode adicionar controles do Windows Forms a documentos do Microsoft Office Excel e do Microsoft Office Word em tempo de design em projetos de nível de documento. Em tempo de execução, você pode adicionar controles em personalizações em nível de documento e em suplementos VSTO. Por exemplo, você pode adicionar um ComboBox controle à planilha para que os usuários possam selecionar em uma lista de opções.

Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de suplemento VSTO para Excel e Word. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.

Este tópico descreve as seguintes tarefas:

Adicionar controles em tempo de design

Há várias maneiras de adicionar controles do Windows Forms ao documento em um projeto de nível de documento em tempo de design.

Observação

Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, confira Personalizar o IDE.

Para arrastar um controle do Windows Forms para o documento

  1. Crie ou abra um projeto de pasta de trabalho do Excel ou projeto de documento do Word no Visual Studio para que o documento seja visível no designer. Para obter informações sobre como criar projetos, consulte Como: Criar projetos do Office no Visual Studio.

  2. Na guia Controles Comuns da Caixa de Ferramentas, clique no controle que deseja adicionar e arraste-o para o documento.

    Observação

    Ao selecionar um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na Barra de Fórmulas. Este texto é necessário e não deve ser suprimido.

Para desenhar um controle do Windows Forms no documento

  1. Crie ou abra um projeto de pasta de trabalho do Excel ou projeto de documento do Word no Visual Studio para que o documento seja visível no designer. Para obter informações sobre como criar projetos, consulte Como: Criar projetos do Office no Visual Studio.

  2. Na guia Controles Comuns da Caixa de Ferramentas, clique no controle que deseja adicionar.

  3. No documento, clique onde deseja que o canto superior esquerdo do controle esteja localizado e arraste para onde deseja que o canto inferior direito do controle esteja localizado.

    O controle é adicionado ao documento com o local e o tamanho especificados.

    Observação

    Ao selecionar um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na Barra de Fórmulas. Este texto é necessário e não deve ser suprimido.

Para adicionar um controle do Windows Forms ao documento clicando uma vez no controle

  1. Crie ou abra um projeto de pasta de trabalho do Excel ou projeto de documento do Word no Visual Studio para que o documento seja visível no designer. Para obter informações sobre como criar projetos, consulte Como: Criar projetos do Office no Visual Studio.

  2. Na guia Controles comuns da caixa de ferramentas, clique no controle que você deseja adicionar

  3. Um do documento, clique onde você deseja que o controle seja adicionado.

    O controle é adicionado ao documento com o tamanho padrão.

    Observação

    Ao selecionar um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na Barra de Fórmulas. Este texto é necessário e não deve ser suprimido.

Para adicionar um controle do Windows Forms ao documento clicando duas vezes no controle

  1. Crie ou abra um projeto de pasta de trabalho do Excel ou projeto de documento do Word no Visual Studio para que o documento seja visível no designer. Para obter informações sobre como criar projetos, consulte Como: Criar projetos do Office no Visual Studio.

  2. Na guia Controles comuns da caixa de ferramentas, clique duas vezes no controle que você deseja adicionar.

    O controle é adicionado ao documento no centro do documento ou painel ativo.

    Observação

    Ao selecionar um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na Barra de Fórmulas. Este texto é necessário e não deve ser suprimido.

Para adicionar um controle do Windows Forms ao documento pressionando a tecla Enter

  1. Crie ou abra um projeto de pasta de trabalho do Excel ou projeto de documento do Word no Visual Studio para que o documento seja visível no designer. Para obter informações sobre como criar projetos, consulte Como: Criar projetos do Office no Visual Studio.

  2. Na guia Controles comuns da caixa de ferramentas, clique no controle que deseja adicionar e pressione a tecla Enter.

    O controle é adicionado ao documento no centro do documento ou painel ativo.

    Observação

    Ao selecionar um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na Barra de Fórmulas. Este texto é necessário e não deve ser suprimido.

Adicionar controles em tempo de execução em projetos de nível de documento

Você pode adicionar programaticamente controles do Windows Forms a um documento em tempo de execução. No Word, use métodos da propriedade da ControlsThisDocument classe. No Excel, use métodos da Controls propriedade de uma Sheetclasse n . Cada método tem várias sobrecargas que permitem especificar o local do controle de maneiras diferentes.

Quando você adiciona um controle do Windows Forms a um documento em tempo de execução, o controle não é persistido no documento quando o documento é fechado. Você pode recriar o controle na próxima vez que o documento for aberto. Para obter mais informações, consulte Adicionar controles a documentos do Office em tempo de execução.

Para adicionar um controle do Windows Forms em tempo de execução

  1. Use um método que tenha o nome Add<control class (onde control class> é o nome da classe do controle Windows Forms que você deseja adicionar, como AddButton).

    O exemplo de código a seguir demonstra como adicionar um à célula C5 de em um Button projeto de nível de Sheet1 documento para Excel.

    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Excel.Controls.Button salesButton;
        salesButton = this.Controls.AddButton(this.get_Range("C5"), "salesButton");
        salesButton.Text = "Calculate Total Sales";
    }
    

Adicionar controles em tempo de execução em suplementos VSTO

Você pode adicionar controles do Windows Forms programaticamente a qualquer documento aberto em tempo de execução. Primeiro, gere um item de host baseado em um documento ou planilha abertos. Em seguida, no Word, use métodos da Controls propriedade do novo item de host. No Excel, use métodos da Controls propriedade do novo item de host. Cada método tem várias sobrecargas que permitem especificar o local do controle de maneiras diferentes.

Quando você adiciona um controle do Windows Forms a um documento em tempo de execução, o controle não é persistido no documento quando o documento é fechado. Você pode recriar o controle na próxima vez que o documento for aberto. Para obter mais informações, consulte Adicionar controles a documentos do Office em tempo de execução.

Para obter mais informações sobre como gerar itens de host em projetos de suplemento VSTO, consulte Estender documentos do Word e pastas de trabalho do Excel em suplementos VSTO em tempo de execução.

Para adicionar um controle do Windows Forms em tempo de execução

  1. Use um método que tenha o nome Add<control class (onde control class> é o nome da classe do controle Windows Forms que você deseja adicionar, como AddButton).

    Observação

    Em projetos de suplemento VSTO destinados ao .NET Framework 4 ou posterior, você deve adicionar uma referência ao assembly Microsoft.Office.Tools.Excel.v4.0.Utilities.dll ou Microsoft.Office.Tools.Word.v4.0.Utilities.dll antes de poder acessar os métodos de classe> de controle Add<.

    O exemplo de código a seguir demonstra como adicionar um ao primeiro parágrafo do documento ativo usando um Button suplemento VSTO do Word.

    Microsoft.Office.Tools.Word.Controls.Button salesButton;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    salesButton = extendedDocument.Controls.AddButton(
        extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton");
    salesButton.Text = "Calculate Sales";