Como: Adicionar controles do Windows Forms a documentos do Office
Você pode adicionar controles Windows Forms para o Excel de Microsoft Office e documentos do Word de Microsoft Office em tempo de design em projetos de nível de documento. Em tempo de execução, você pode adicionar controles no personalizações em nível de documento e no nível do aplicativo add-ins. Por exemplo, você pode adicionar um ComboBox o controle para sua planilha para que os usuários podem selecionar uma lista de opções.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para os seguintes aplicativos: Excel 2007 e Excel 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Este tópico descreve as seguintes tarefas:
Adicionando controles em tempo de design
Adicionando controles em tempo de execução em projetos de nível de documento
Adicionando controles em tempo de execução em suplementos de nível de aplicativo
Para uma demonstração de vídeo relacionada, consulte Fazer como i: Adicionar controles a uma superfície do documento em tempo de execução?.
Adicionando controles em tempo de Design
Há várias maneiras de adicionar os controles Windows Forms para o documento em um projeto de nível de documento em tempo de design.
Observação |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da 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, consulte Configurações do Visual Studio. |
Para arrastar um controle Windows Forms para o documento.
Crie ou abra um projeto da pasta de trabalho do Excel ou documento do Word no Visual Studio para que o documento fique visível no designer. Para obter informações sobre a criação de projetos, consulte Como: Criar projetos do Office em Visual Studio.
No Controles comuns guia da caixa de ferramentas, clique no controle que você deseja adicionar e arraste-o para o documento.
Observação Quando você seleciona um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na A barra de fórmula. Esse texto é necessário e não deve ser excluído.
Para desenhar um controle Windows Forms no documento
Crie ou abra um projeto da pasta de trabalho do Excel ou documento do Word no Visual Studio para que o documento fique visível no designer. Para obter informações sobre a criação de projetos, consulte Como: Criar projetos do Office em Visual Studio.
No Controles comuns guia da caixa de ferramentas, clique no controle que você deseja adicionar.
No documento, clique onde deseja que o canto superior esquerdo do controle para ser localizado e arraste para onde deseja que o canto inferior direito do controle para ser localizado.
O controle é adicionado ao documento com o tamanho e o local especificado.
Observação Quando você seleciona um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na A barra de fórmula. Esse texto é necessário e não deve ser excluído.
Para adicionar um controle Windows Forms para o documento clicando no controle
Crie ou abra um projeto da pasta de trabalho do Excel ou documento do Word no Visual Studio para que o documento fique visível no designer. Para obter informações sobre a criação de projetos, consulte Como: Criar projetos do Office em Visual Studio.
No Controles comuns guia da caixa de ferramentas, clique no controle que você deseja adicionar
Um documento, clique onde deseja que o controle a ser adicionado.
O controle é adicionado ao documento com o tamanho padrão.
Observação Quando você seleciona um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na A barra de fórmula. Esse texto é necessário e não deve ser excluído.
Para adicionar um controle Windows Forms para o documento clicando duas vezes no controle.
Crie ou abra um projeto da pasta de trabalho do Excel ou documento do Word no Visual Studio para que o documento fique visível no designer. Para obter informações sobre a criação de projetos, consulte Como: Criar projetos do Office em Visual Studio.
No Controles comuns guia da caixa de ferramentas, duas vezes no controle que você deseja adicionar.
O controle é adicionado ao documento no centro do documento ou painel ativo.
Observação Quando você seleciona um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na A barra de fórmula. Esse texto é necessário e não deve ser excluído.
Para adicionar um controle Windows Forms ao documento pressionando a tecla ENTER
Crie ou abra um projeto da pasta de trabalho do Excel ou documento do Word no Visual Studio para que o documento fique visível no designer. Para obter informações sobre a criação de projetos, consulte Como: Criar projetos do Office em Visual Studio.
No Controles comuns guia da caixa de ferramentas, clique no controle que você deseja adicionar e pressione a tecla ENTER.
O controle é adicionado ao documento no centro do documento ou painel ativo.
Observação Quando você seleciona um controle no Excel, você verá =EMBED("WinForms.Control.Host","") na A barra de fórmula. Esse texto é necessário e não deve ser excluído.
Adicionando controles em tempo de execução em projetos de nível de documento
Programaticamente, você pode adicionar controles Windows Forms a um documento em tempo de execução. No Word, use os métodos da Controls propriedade da ThisDocument classe. No Excel, use os métodos da Controls propriedade de um Sheetn classe. Cada método tem várias sobrecargas que permitem que você especifique o local do controle de maneiras diferentes. For more information, see Métodos auxiliares para controles Windows Forms.
Quando você adiciona um controle Windows Forms a um documento em tempo de execução, o controle não é mantido no documento quando o documento é fechado. Você pode recriar o controle na próxima vez em que o documento for aberto. For more information, see Adicionar controles a documentos do Office em tempo de execução.
Para adicionar um controle Windows Forms em tempo de execução
Usar um método que tem o nome Add<a classe de controle> (onde a classe de controle é 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 Button a célula C5 de Sheet1 em um projeto de nível de documento para o Excel.
Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup Dim salesButton As Microsoft.Office.Tools.Excel.Controls.Button salesButton = Me.Controls.AddButton(Me.Range("C5"), "salesButton") salesButton.Text = "Calculate Total Sales" End Sub
private void Sheet1_Startup(object sender, System.EventArgs e) { Microsoft.Office.Tools.Excel.Controls.Button salesButton; salesButton = this.Controls.AddButton(this.get_Range("C5", missing), "salesButton"); salesButton.Text = "Calculate Total Sales"; }
Adicionando controles em tempo de execução em suplementos de nível de aplicativo
Você pode adicionar controles Windows Forms programaticamente a qualquer documento aberto em tempo de execução. Primeiro, gere um item de host que se baseia em uma planilha ou documento aberto. Em seguida, no Word, use os métodos da Document.Controls a propriedade do novo item de host. No Excel, use os métodos da Worksheet.Controls a propriedade do novo item de host. Cada método tem várias sobrecargas que permitem que você especifique o local do controle de maneiras diferentes. For more information, see Métodos auxiliares para controles Windows Forms.
Quando você adiciona um controle Windows Forms a um documento em tempo de execução, o controle não é mantido no documento quando o documento é fechado. Você pode recriar o controle na próxima vez em que o documento for aberto. For more information, see Adicionar controles a documentos do Office em tempo de execução.
Para obter mais informações sobre itens de host gerando em projetos de nível de aplicativo, consulte Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução.
Para adicionar um controle Windows Forms em tempo de execução
Usar um método que tem o nome Add<a classe de controle> (onde a classe de controle é o nome da classe do controle Windows Forms que você deseja adicionar, como AddButton()).
Observação No suplemento de nível de aplicativo projetos destinados a .NET Framework 4, 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 o Add<a classe de controle> métodos.
O exemplo de código a seguir demonstra como adicionar um Button ao primeiro parágrafo do documento ativo usando um Word add-in.
Dim salesButton As Microsoft.Office.Tools.Word.Controls.Button ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' Dim extendedDocument As Document = Me.Application.ActiveDocument.GetVstoObject() extendedDocument.Paragraphs(1).Range.InsertParagraphBefore() salesButton = extendedDocument.Controls.AddButton( _ extendedDocument.Paragraphs(1).Range, 75, 18, "salesButton") salesButton.Text = "Calculate Sales"
Microsoft.Office.Tools.Word.Controls.Button salesButton; // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // Document extendedDocument = this.Application.ActiveDocument.GetVstoObject(); extendedDocument.Paragraphs[1].Range.InsertParagraphBefore(); salesButton = extendedDocument.Controls.AddButton( extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton"); salesButton.Text = "Calculate Sales";
Consulte também
Tarefas
Como: Redimensionar controles dentro das células da planilha
Conceitos
Controles do Windows Forms em Visão geral de documentos do Office
Adicionar controles a documentos do Office em tempo de execução