Como: Adicionar controles de conteúdo para documentos do Word
Em projetos de nível de documento Word, você pode adicionar controles de conteúdo para o documento em seu projeto em tempo de design ou em tempo de execução. Em projetos do Word de nível de aplicativo, você pode adicionar controles de conteúdo para qualquer documento aberto em tempo de execução.
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 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 de conteúdo em tempo de design
Adicionando controles de conteúdo em tempo de execução em um projeto de nível de documento
Adicionando controles de conteúdo em tempo de execução em um projeto de nível de aplicativo
Para obter informações sobre controles de conteúdo, consulte Controles de conteúdo.
Adicionando controles de conteúdo em tempo de Design
Há várias maneiras de adicionar os controles de conteúdo para o documento em um projeto de nível de documento em tempo de design:
Adicionar um controle de conteúdo da Controles do Word guia da caixa de ferramentas.
Adicionar um controle de conteúdo ao seu documento da mesma maneira você adicionaria um controle de conteúdo nativo no Word.
Arraste um controle de conteúdo para o documento a partir de Fontes de dados janela. Isso é útil quando você deseja vincular o controle aos dados quando o controle é criado. For more information, see Como: Preencher documentos com dados de objetos and Como: Preencher documentos com dados de um banco de dados..
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 adicionar um controle de conteúdo a um documento usando a caixa de ferramentas.
No documento que está hospedado no Visual Studio designer, coloque o cursor onde deseja adicionar o controle de conteúdo, ou selecione o texto que você deseja que o controle de conteúdo para substituir.
Abrir o caixa de ferramentas e clique no Controles do Word guia.
Adicione o controle em uma das seguintes maneiras:
Clique duas vezes em um controle de conteúdo da caixa de ferramentas.
or
Clique em um controle de conteúdo da caixa de ferramentas e pressione a tecla ENTER.
or
Arraste um controle de conteúdo do caixa de ferramentas o documento. O controle de conteúdo é adicionado na seleção atual no documento, não no local do ponteiro do mouse.
Observação |
---|
Não é possível adicionar um GroupContentControl usando o caixa de ferramentas. Você só pode adicionar um GroupContentControl no Word, ou em tempo de execução. |
Observação |
---|
Visual Studio não fornece um controle de conteúdo da caixa de seleção na caixa de ferramentas para projetos de 2010 do Word. Para adicionar um controle de conteúdo da caixa de seleção ao documento, você deve criar um ContentControl objeto programaticamente. For more information, see Controles de conteúdo. |
Para adicionar um controle de conteúdo para um documento do Word
No documento que está hospedado no Visual Studio designer, coloque o cursor onde deseja adicionar o controle de conteúdo, ou selecione o texto que você deseja que o controle de conteúdo para substituir.
Na faixa de opções, clique no Developer guia.
Observação Se o Developer guia não estiver visível, você deve primeiro mostrá-lo. For more information, see Como: Mostrar guia desenvolvedor na faixa de opções.
No controles de de grupo, clique no ícone para o controle de conteúdo que você deseja adicionar.
Adicionando controles de conteúdo em tempo de execução em um projeto de nível de documento
Você pode adicionar controles de conteúdo por meio de programação ao seu documento em tempo de execução usando métodos da Controls propriedade da ThisDocument classe no projeto. Cada método tem três sobrecargas que você pode usar para adicionar um controle de conteúdo das seguintes maneiras:
Adicione um controle na seleção atual.
Adicione um controle em um intervalo especificado.
Adicione um controle baseado em um controle de conteúdo nativo no documento.
Criada dinamicamente o conteúdo de controles não são persistentes no documento quando o documento é fechado. No entanto, um controle de conteúdo nativo permanecerá no documento. Você pode recriar um controle de conteúdo com base em um controle de conteúdo nativo 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.
Observação |
---|
Para adicionar um controle de conteúdo da caixa de seleção a um documento em um projeto de 2010 do Word, você deve criar um ContentControl objeto. For more information, see Controles de conteúdo. |
Para adicionar um controle de conteúdo na seleção atual
Use um ControlCollection que tem o nome do método Add<a classe de controle> (onde a classe de controle é o nome da classe do controle de conteúdo que você deseja adicionar, como AddRichTextContentControl), e que tem um único parâmetro para o nome do novo controle.
O seguinte exemplo de código usa a ControlCollection.AddRichTextContentControl(String) método para adicionar um novo RichTextContentControl para o início do documento. Para executar esse código, adicione o código para o ThisDocument classe em seu projeto e a chamada a AddRichTextControlAtSelection método a partir do ThisDocument_Startup manipulador de eventos.
Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtSelection() Me.Paragraphs(1).Range.InsertParagraphBefore() Me.Paragraphs(1).Range.Select() richTextControl1 = Me.Controls.AddRichTextContentControl("richTextControl1") richTextControl1.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1; private void AddRichTextControlAtSelection() { this.Paragraphs[1].Range.InsertParagraphBefore(); this.Paragraphs[1].Range.Select(); richTextControl1 = this.Controls.AddRichTextContentControl("richTextControl1"); richTextControl1.PlaceholderText = "Enter your first name"; }
Para adicionar um controle de conteúdo em um intervalo especificado
Use um ControlCollection que tem o nome do método Add<a classe de controle> (onde a classe de controle é o nome da classe de controle de conteúdo que você deseja adicionar, como AddRichTextContentControl), e que tem um Microsoft.Office.Interop.Word.Range parâmetro.
O seguinte exemplo de código usa a ControlCollection.AddRichTextContentControl(Range, String) método para adicionar um novo RichTextContentControl para o início do documento. Para executar esse código, adicione o código para o ThisDocument classe em seu projeto e a chamada a AddRichTextControlAtRange método a partir do ThisDocument_Startup manipulador de eventos.
Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtRange() Me.Paragraphs(1).Range.InsertParagraphBefore() richTextControl2 = Me.Controls.AddRichTextContentControl(Me.Paragraphs(1).Range, _ "richTextControl2") richTextControl2.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2; private void AddRichTextControlAtRange() { this.Paragraphs[1].Range.InsertParagraphBefore(); richTextControl2 = this.Controls.AddRichTextContentControl(this.Paragraphs[1].Range, "richTextControl2"); richTextControl2.PlaceholderText = "Enter your first name"; }
Para adicionar um controle de conteúdo que se baseia em um controle de conteúdo nativo
Use um ControlCollection que tem o nome do método Add<a classe de controle> (onde a classe de controle é o nome da classe de controle de conteúdo que você deseja adicionar, como AddRichTextContentControl), e que tem um Microsoft.Office.Interop.Word.ContentControl parâmetro.
O seguinte exemplo de código usa a ControlCollection.AddRichTextContentControl(ContentControl, String) método para criar uma nova RichTextContentControl para cada controle nativo de rich text, que está no documento. Para executar esse código, adicione o código para o ThisDocument classe em seu projeto e a chamada a CreateRichTextControlsFromNativeControls método a partir do ThisDocument_Startup manipulador de eventos.
Private richTextControls As New System.Collections.Generic.List _ (Of Microsoft.Office.Tools.Word.RichTextContentControl) Private Sub CreateRichTextControlsFromNativeControls() If Me.ContentControls.Count <= 0 Then Return End If Dim count As Integer = 0 For Each nativeControl As Word.ContentControl In Me.ContentControls If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then count += 1 Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _ Me.Controls.AddRichTextContentControl(nativeControl, _ "VSTORichTextContentControl" + count.ToString()) richTextControls.Add(tempControl) End If Next nativeControl End Sub
private System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls; private void CreateRichTextControlsFromNativeControls() { if (this.ContentControls.Count <= 0) return; richTextControls = new System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl>(); int count = 0; foreach (Word.ContentControl nativeControl in this.ContentControls) { if (nativeControl.Type == Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText) { count++; Microsoft.Office.Tools.Word.RichTextContentControl tempControl = this.Controls.AddRichTextContentControl(nativeControl, "VSTORichTextControl" + count.ToString()); richTextControls.Add(tempControl); } } }
Adicionando controles de conteúdo em tempo de execução em um projeto de nível de aplicativo
Você pode adicionar controles de conteúdo por meio de programação para qualquer documento aberto em tempo de execução usando um suplemento em nível de aplicativo. Para fazer isso, gerar um Document item se baseia em um documento aberto do host e use métodos da Controls a propriedade deste item de host. Cada método tem três sobrecargas que você pode usar para adicionar um controle de conteúdo das seguintes maneiras:
Adicione um controle na seleção atual.
Adicione um controle em um intervalo especificado.
Adicione um controle baseado em um controle de conteúdo nativo no documento.
Criada dinamicamente o conteúdo de controles não são persistentes no documento quando o documento é fechado. No entanto, um controle de conteúdo nativo permanecerá no documento. Você pode recriar um controle de conteúdo com base em um controle de conteúdo nativo na próxima vez em que o documento for aberto. For more information, see Persistência de controles dinâmicos em documentos do Office.
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.
Observação |
---|
Para adicionar um controle de conteúdo da caixa de seleção a um documento em um projeto de 2010 do Word, você deve criar um ContentControl objeto. For more information, see Controles de conteúdo. |
Para adicionar um controle de conteúdo na seleção atual
Use um ControlCollection que tem o nome do método Add<a classe de controle> (onde a classe de controle é o nome da classe do controle de conteúdo que você deseja adicionar, como AddRichTextContentControl), e que tem um único parâmetro para o nome do novo controle.
O seguinte exemplo de código usa a ControlCollection.AddRichTextContentControl(String) método para adicionar um novo RichTextContentControl para o início do documento ativo. Para executar esse código, adicione o código para o ThisAddIn classe em seu projeto e a chamada a AddRichTextControlAtSelection método a partir do ThisAddIn_Startup manipulador de eventos.
Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtSelection() Dim currentDocument As Word.Document = Me.Application.ActiveDocument currentDocument.Paragraphs(1).Range.InsertParagraphBefore() currentDocument.Paragraphs(1).Range.Select() ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' Dim extendedDocument As Document = currentDocument.GetVstoObject() richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1") richTextControl1.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1; private void AddRichTextControlAtSelection() { Word.Document currentDocument = this.Application.ActiveDocument; currentDocument.Paragraphs[1].Range.InsertParagraphBefore(); currentDocument.Paragraphs[1].Range.Select(); // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // Document extendedDocument = currentDocument.GetVstoObject(); richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1"); richTextControl1.PlaceholderText = "Enter your first name"; }
Para adicionar um controle de conteúdo em um intervalo especificado
Use um ControlCollection que tem o nome do método Add<a classe de controle> (onde a classe de controle é o nome da classe de controle de conteúdo que você deseja adicionar, como AddRichTextContentControl), e que tem um Microsoft.Office.Interop.Word.Range parâmetro.
O seguinte exemplo de código usa a ControlCollection.AddRichTextContentControl(Range, String) método para adicionar um novo RichTextContentControl para o início do documento ativo. Para executar esse código, adicione o código para o ThisAddIn classe em seu projeto e a chamada a AddRichTextControlAtRange método a partir do ThisAddIn_Startup manipulador de eventos.
Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtRange() Dim currentDocument As Word.Document = Me.Application.ActiveDocument currentDocument.Paragraphs(1).Range.InsertParagraphBefore() ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' Dim extendedDocument As Document = currentDocument.GetVstoObject() richTextControl2 = extendedDocument.Controls.AddRichTextContentControl( _ extendedDocument.Paragraphs(1).Range, "richTextControl2") richTextControl2.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2; private void AddRichTextControlAtRange() { Word.Document currentDocument = this.Application.ActiveDocument; currentDocument.Paragraphs[1].Range.InsertParagraphBefore(); // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // Document extendedDocument = currentDocument.GetVstoObject(); richTextControl2 = extendedDocument.Controls.AddRichTextContentControl( currentDocument.Paragraphs[1].Range, "richTextControl2"); richTextControl2.PlaceholderText = "Enter your first name"; }
Para adicionar um controle de conteúdo que se baseia em um controle de conteúdo nativo
Use um ControlCollection que tem o nome do método Add<a classe de controle> (onde a classe de controle é o nome da classe de controle de conteúdo que você deseja adicionar, como AddRichTextContentControl), e que tem um Microsoft.Office.Interop.Word.ContentControl parâmetro.
O seguinte exemplo de código usa a ControlCollection.AddRichTextContentControl(ContentControl, String) método para criar uma nova RichTextContentControl para cada controle nativo de rich text que está em um documento, depois que o documento for aberto. Para executar esse código, adicione o código para o ThisAddIn classe no projeto.
Private richTextControls As New System.Collections.Generic.List _ (Of Microsoft.Office.Tools.Word.RichTextContentControl) Private Sub Application_DocumentOpen(ByVal Doc As Microsoft.Office.Interop.Word.Document) _ Handles Application.DocumentOpen If Doc.ContentControls.Count > 0 Then ' Use the following line of code in projects that target the .NET Framework 4. Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Doc) ' In projects that target the .NET Framework 3.5, use the following line of code. ' Dim extendedDocument As Document = Doc.GetVstoObject() Dim count As Integer = 0 For Each nativeControl As Word.ContentControl In Doc.ContentControls If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then count += 1 Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _ extendedDocument.Controls.AddRichTextContentControl(nativeControl, _ "VSTORichTextContentControl" + count.ToString()) richTextControls.Add(tempControl) End If Next nativeControl End If End Sub
private System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls; private void Application_DocumentOpen(Microsoft.Office.Interop.Word.Document Doc) { if (Doc.ContentControls.Count > 0) { // Use the following line of code in projects that target the .NET Framework 4. Document extendedDocument = Globals.Factory.GetVstoObject(Doc); // In projects that target the .NET Framework 3.5, use the following line of code. // Document extendedDocument = Doc.GetVstoObject(); richTextControls = new System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl>(); int count = 0; foreach (Word.ContentControl nativeControl in Doc.ContentControls) { if (nativeControl.Type == Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText) { count++; Microsoft.Office.Tools.Word.RichTextContentControl tempControl = extendedDocument.Controls.AddRichTextContentControl(nativeControl, "VSTORichTextControl" + count.ToString()); richTextControls.Add(tempControl); } } } }
Para C#, você também deve anexar o Application_DocumentOpen o manipulador de eventos para o DocumentOpen de evento.
this.Application.DocumentOpen += new Word.ApplicationEvents4_DocumentOpenEventHandler(Application_DocumentOpen);
Consulte também
Conceitos
Automatizar o Word usando o Extended objetos
Itens de host e a visão geral sobre controles de Host
Adicionar controles a documentos do Office em tempo de execução
Limitações de programação de itens de Host e controles de Host
Métodos auxiliares para controles de Host