Como: adicionar controles de conteúdo para documentos do Word

Em projetos de um documento do word nível, você pode adicionar controles de conteúdo do documento em seu projeto em tempo de design ou em tempo de execução.Em projetos do word 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 2013 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 um documento nível

  • 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 em tempo de design controles de conteúdo do documento em um projeto de um documento nível:

  • Adicionar um controle de conteúdo da guia de Controles do word de Caixa de Ferramentas.

  • Adicionar um controle de conteúdo no seu documento da mesma maneira que você adicionaria um controle de conteúdo nativo em palavras.

  • Arraste um controle de conteúdo no seu documento da janela de Fontes de Dados .Isso é útil quando você deseja associar o controle aos dados quando o controle é criado.Para obter mais informações, consulte Como: preencher documentos com dados de objetos e Como: preencher documentos com dados de um banco de dados..

ObservaçãoObservaçã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 de Visual Studio.

para adicionar um controle de conteúdo a um documento usando a caixa de ferramentas

  1. Em o documento que é hospedado no designer de Visual Studio , coloque o cursor onde você deseja adicionar o controle do conteúdo, ou para selecionar o texto que você deseja controle de conteúdo para substituir.

  2. Abra Caixa de Ferramentas e clique na guia de Controles do word .

  3. Adicione o controle um das seguintes maneiras:

    • Clique duas vezes em um controle de conteúdo em Caixa de Ferramentas.

      ou

    • Clique em um controle de conteúdo em Caixa de Ferramentas e pressione a tecla ENTER.

      ou

    • Arraste um controle de Caixa de Ferramentas conteúdo do documento.O controle de conteúdo é adicionado na seleção atual no documento, não no local do ponteiro do mouse.

ObservaçãoObservação

você não pode adicionar GroupContentControl usando Caixa de Ferramentas.Você só pode adicionar GroupContentControl em palavras, ou em tempo de execução.

ObservaçãoObservação

Visual Studio não fornece um controle de conteúdo da caixa de seleção na caixa de ferramentas para Word 2013 e não exprime 2010 projetos.Para adicionar um controle de conteúdo da caixa de seleção para o documento, você deve criar um objeto de ContentControl programaticamente.Para obter mais informações, consulte Controles de conteúdo.

Para adicionar um controle de conteúdo a um documento no word

  1. Em o documento que é hospedado no designer de Visual Studio , coloque o cursor onde você deseja adicionar o controle do conteúdo, ou para selecionar o texto que você deseja controle de conteúdo para substituir.

  2. Em fita, clique na guia de Desenvolvedor .

    ObservaçãoObservação

    Se a guia de Desenvolvedor não estiver visível, primeiro você deve mostrar.Para obter mais informações, consulte Como: Mostrar guia desenvolvedor na faixa de opções.

  3. Em o grupo de Controles , 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 um documento Nível

Você pode adicionar controles de conteúdo programaticamente no seu documento em tempo de execução usando métodos de propriedade de Controls da classe de ThisDocument em seu projeto.Cada método tem três sobrecargas que você pode usar as seguintes maneiras para adicionar um controle de conteúdo:

  • Adicione um controle na seleção atual.

  • Adicione um controle em um intervalo especificado.

  • Adicionar um controle baseado em um controle de conteúdo nativo no documento.

Os controles criados dinamicamente de conteúdo não são persistentes no documento quando o documento é fechado.Em o entanto, um controle de conteúdo nativo permanece no documento.Você pode recriar um controle de conteúdo baseado em um controle de conteúdo nativo o documento está aberto na próxima vez que.Para obter mais informações, consulte Adicionar controles a documentos do Office em tempo de execução.

ObservaçãoObservação

Para adicionar um controle de conteúdo da caixa de seleção a um documento em um projeto do word 2010, você deve criar um objeto de ContentControl .Para obter mais informações, consulte Controles de conteúdo.

Para adicionar um controle de conteúdo na seleção atual

  • Use um método de ControlCollection que tem o nome Add<classe de controle> ( classe de controle onde é 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 exemplo de código a seguir usa o método de ControlCollection.AddRichTextContentControl(String) para adicionar novo RichTextContentControl para o início do documento.Para executar esse código, adicione código para a classe de ThisDocument em seu projeto, e chame o método de AddRichTextControlAtSelection manipulador de eventos de ThisDocument_Startup .

    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 método de ControlCollection que tem o nome Add<classe de controle> ( classe de controle onde é o nome da classe de conteúdo do controle que você deseja adicionar, como AddRichTextContentControl), e que tem um parâmetro de Microsoft.Office.Interop.Word.Range .

    O exemplo de código a seguir usa o método de ControlCollection.AddRichTextContentControl(Range, String) para adicionar novo RichTextContentControl para o início do documento.Para executar esse código, adicione código para a classe de ThisDocument em seu projeto, e chame o método de AddRichTextControlAtRange manipulador de eventos de ThisDocument_Startup .

    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 baseado em um controle de conteúdo nativo

  • Use um método de ControlCollection que tem o nome Add<classe de controle> ( classe de controle onde é o nome da classe de conteúdo do controle que você deseja adicionar, como AddRichTextContentControl), e que tem um parâmetro de Microsoft.Office.Interop.Word.ContentControl .

    O exemplo de código a seguir usa o método de ControlCollection.AddRichTextContentControl(ContentControl, String) para criar uma nova RichTextContentControl para cada controle rico nativo de texto que está no documento.Para executar esse código, adicione código para a classe de ThisDocument em seu projeto, e chame o método de CreateRichTextControlsFromNativeControls manipulador de eventos de ThisDocument_Startup .

    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 programaticamente a qualquer documento aberto em tempo de execução usando um suplemento ao aplicativo.Para fazer isso, gerar um item de host de Document baseado em um documento aberto, e então usar métodos de propriedade de Controls de este item host.Cada método tem três sobrecargas que você pode usar as seguintes maneiras para adicionar um controle de conteúdo:

  • Adicione um controle na seleção atual.

  • Adicione um controle em um intervalo especificado.

  • Adicionar um controle baseado em um controle de conteúdo nativo no documento.

Os controles criados dinamicamente de conteúdo não são persistentes no documento quando o documento é fechado.Em o entanto, um controle de conteúdo nativo permanece no documento.Você pode recriar um controle de conteúdo baseado em um controle de conteúdo nativo o documento está aberto na próxima vez que.Para obter mais informações, consulte Persisting controles dinâmicos em documentos do Office.

Para obter mais informações sobre como gerar host itens em projetos 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çãoObservação

Para adicionar um conteúdo da caixa de seleção controle a um documento em Word 2013 ou projeto do word 2010, você deve criar um objeto de ContentControl .Para obter mais informações, consulte Controles de conteúdo.

Para adicionar um controle de conteúdo na seleção atual

  • Use um método de ControlCollection que tem o nome Add<classe de controle> ( classe de controle onde é 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 exemplo de código a seguir usa o método de ControlCollection.AddRichTextContentControl(String) para adicionar novo RichTextContentControl para o início do documento ativo.Para executar esse código, adicione código para a classe de ThisAddIn em seu projeto, e chame o método de AddRichTextControlAtSelection manipulador de eventos de ThisAddIn_Startup .

    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()
    
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    
        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();
    
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1");
        richTextControl1.PlaceholderText = "Enter your first name";
    }
    

para adicionar um controle de conteúdo em um intervalo especificado

  • Use um método de ControlCollection que tem o nome Add<classe de controle> ( classe de controle onde é o nome da classe de conteúdo do controle que você deseja adicionar, como AddRichTextContentControl), e que tem um parâmetro de Microsoft.Office.Interop.Word.Range .

    O exemplo de código a seguir usa o método de ControlCollection.AddRichTextContentControl(Range, String) para adicionar novo RichTextContentControl para o início do documento ativo.Para executar esse código, adicione código para a classe de ThisAddIn em seu projeto, e chame o método de AddRichTextControlAtRange manipulador de eventos de ThisAddIn_Startup .

    Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtRange()
        Dim currentDocument As Word.Document = Me.Application.ActiveDocument
        currentDocument.Paragraphs(1).Range.InsertParagraphBefore()
    
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
        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();
    
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        richTextControl2 = extendedDocument.Controls.AddRichTextContentControl(
            currentDocument.Paragraphs[1].Range, "richTextControl2");
        richTextControl2.PlaceholderText = "Enter your first name";
    }
    

Para adicionar um controle de conteúdo baseado em um controle de conteúdo nativo

  • Use um método de ControlCollection que tem o nome Add<classe de controle> ( classe de controle onde é o nome da classe de conteúdo do controle que você deseja adicionar, como AddRichTextContentControl), e que tem um parâmetro de Microsoft.Office.Interop.Word.ContentControl .

    O exemplo de código a seguir usa o método de ControlCollection.AddRichTextContentControl(ContentControl, String) para criar uma nova RichTextContentControl para cada controle rico nativo de texto que está em um documento, após o documento está aberto.Para executar esse código, adicione código para a classe de ThisAddIn em seu 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
    
            Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Doc)
    
            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)
        {
            Document extendedDocument = Globals.Factory.GetVstoObject(Doc);
    
            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 um manipulador de eventos de Application_DocumentOpen ao evento de DocumentOpen .

    this.Application.DocumentOpen +=
        new Word.ApplicationEvents4_DocumentOpenEventHandler(Application_DocumentOpen);
    

Consulte também

Conceitos

Automação do Word utilizando o Extended objetos

Itens de host e 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

Outros recursos

Os suplementos de nível de aplicativo de programação.

Programação personalizações em nível de documento