Compartilhar via


Passo a passo: Criando um modelo usando os controles de conteúdo

Essa explicação passo a passo demonstra como criar uma personalização da nível de conteúdo que usa controles para criar conteúdo estruturada e reutilizáveis em um modelo Microsoft Office Word.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para Word 2013 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

A palavra permite que você crie uma coleção de partes reutilizáveis do documento, blocos de construçãonomeados.Essa explicação passo a passo mostra como criar duas tabelas como blocos de construção.Cada tabela contém vários controles de conteúdo que podem conter tipos diferentes de conteúdo, como texto sem formatação ou datas.Uma das tabelas contém informações sobre um funcionário, e a outra tabela contém comentários de cliente.

Depois de criar um documento de modelo, você pode adicionar qualquer uma das tabelas ao documento usando vários objetos de BuildingBlockGalleryContentControl , que exibe os blocos de construção disponíveis no modelo.

Essa explicação passo a passo mostra as seguintes tarefas:

  • Criando tabelas que contêm controles de conteúdo em um modelo da palavra em tempo de design.

  • Preenchendo um conteúdo da caixa de combinação controle e um controle de conteúdo da lista suspensa por meio de programação.

  • impedindo que os usuários editem uma tabela especificada.

  • Adicionar tabelas à coleção do bloco de construção de um modelo.

  • Criando um controle de conteúdo que exibe os blocos de construção disponíveis no modelo.

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.

Pré-requisitos

Para completar este passo-a-passo, são necessários os seguintes componentes:

-

Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
  • Word 2013 ou Word 2010.

Criando um novo projeto do modelo do word

Crie um modelo de palavras para que os usuários podem criar suas próprias cópias facilmente.

Para criar um novo projeto do modelo do word

  • Crie um projeto do modelo do word com o nome MyBuildingBlockTemplate.Em o assistente, crie um novo documento na solução.Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.

    Visual Studio abre o novo modelo do word no designer e adiciona o projeto de MyBuildingBlockTemplate a Gerenciador de Soluções.

Criando a tabela de funcionários

Criar uma tabela que contém quatro tipos diferentes de controles de conteúdo onde o usuário pode inserir informações sobre um funcionário.

Para criar a tabela de funcionários

  1. Em o modelo do word que é hospedado no designer de Visual Studio , em fita, clique na guia de Inserir .

  2. Em o grupo de Tabelas , clique em Tabela, e inserir uma tabela com 2 colunas e linhas 4.

  3. Digite o texto na primeira coluna de modo que se assemelha a coluna seguir:

    Nome de funcionário

    data de admissão

    Nome

    Imagem

  4. Clique na primeira célula na segunda coluna (no lado de Nome do Funcionário).

  5. 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.

  6. Em o grupo de Controles , clique no botão PlainTextContentControl de Texto para adicionar PlainTextContentControl à primeira célula.

  7. Clique na segunda célula na segunda coluna (no lado de Data de Contratação).

  8. Em o grupo de Controles , clique no botão DatePickerContentControl de Seletor de Data para adicionar DatePickerContentControl para a segunda célula.

  9. Clique na terceira célula na segunda coluna (no lado de Título).

  10. Em o grupo de Controles , clique no botão ComboBoxContentControl de Caixa de Combinação para adicionar ComboBoxContentControl para a terceira célula.

  11. Clique na célula a última na segunda coluna (no lado de Imagem).

  12. Em o grupo de Controles , clique no botão PictureContentControl de Controle de Conteúdo de Imagem para adicionar PictureContentControl para a última célula.

Criando a tabela dos comentários de cliente

Criar uma tabela que contém três tipos diferentes de controles de conteúdo onde o usuário pode inserir informações de comentários do cliente.

Para criar a tabela dos comentários de cliente

  1. Em o modelo da palavra, clique na linha após a tabela de funcionários que você adicionou anteriormente, e pressione ENTER para adicionar um novo parágrafo.

  2. Em fita, clique na guia de Inserir .

  3. Em o grupo de Tabelas , clique em Tabela, e inserir uma tabela com 2 colunas e linhas 3.

  4. Digite o texto na primeira coluna de modo que se assemelha a coluna seguir:

    Customer Name

    avaliação de satisfação

    Comentários

  5. Clique na primeira célula da primeira coluna (no lado de Nome do cliente).

  6. Em fita, clique na guia de Desenvolvedor .

  7. Em o grupo de Controles , clique no botão PlainTextContentControl de Texto para adicionar PlainTextContentControl à primeira célula.

  8. Clique na segunda célula da primeira coluna (no lado de avaliação de satisfação).

  9. Em o grupo de Controles , clique no botão DropDownListContentControl de Lista Suspensa para adicionar DropDownListContentControl para a segunda célula.

  10. Clique na última célula da primeira coluna (no lado de Comentários).

  11. Em o grupo de Controles , clique no botão RichTextContentControl de Rich Text para adicionar RichTextContentControl para a última célula.

Preenchendo a caixa de combinação e soltar para baixo da lista programaticamente

Você pode inicializar controles de conteúdo em tempo de design usando a janela de Propriedades em Visual Studio.Você também pode inicializar-los em tempo de execução, que permite que você definir dinamicamente os seus estados iniciais.Para esses passo a passo, código de uso preenche as entradas em ComboBoxContentControl e em DropDownListContentControl em tempo de execução para que você possa ver como esses objetos funcionam.

Para alterar programaticamente interface do usuário de controles de conteúdo

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument.cs ou ThisDocument.vb, clique em Exibir Código.

  2. Adicione o seguinte código à classe ThisDocument:Esse código declara vários objetos que você usará posteriormente em este passo-a-passo.

    Private GroupControl1 As Microsoft.Office.Tools.Word.GroupContentControl
    Private BuildingBlockControl1 As Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl
    Private BuildingBlockControl2 As Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl
    
    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    
  3. Adicione o seguinte código ao método de ThisDocument_Startup da classe de ThisDocument .Este código adiciona entradas a ComboBoxContentControl e a DropDownListContentControl nas tabelas, e defina o texto de espaço reservado que é exibido em cada um de esses controles antes que o usuário edite os.

    ComboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own"
    ComboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0)
    ComboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1)
    ComboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2)
    
    DropDownListContentControl1.PlaceholderText = _
        "Choose a rating (1 lowest, 3 highest)"
    DropDownListContentControl1.DropDownListEntries.Add("1", "1", 0)
    DropDownListContentControl1.DropDownListEntries.Add("2", "2", 1)
    DropDownListContentControl1.DropDownListEntries.Add("3", "3", 2)
    
    comboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own";
    comboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0);
    comboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1);
    comboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2);
    
    dropDownListContentControl1.PlaceholderText =
        "Choose a rating (1 lowest, 3 highest)";
    dropDownListContentControl1.DropDownListEntries.Add("1", "1", 0);
    dropDownListContentControl1.DropDownListEntries.Add("2", "2", 1);
    dropDownListContentControl1.DropDownListEntries.Add("3", "3", 2);
    

Impedindo que os usuários editem a tabela de funcionários

Use o objeto de GroupContentControl que você declarado anteriormente para proteger a tabela de funcionários.Após protegido a tabela, os usuários ainda podem editar os controles de conteúdo na tabela.Em o entanto, não podem editar o texto na primeira coluna ou alterar a tabela de outras maneiras, como adicionar ou excluir linhas e colunas.Para obter mais informações sobre como usar GroupContentControl para proteger uma parte de um documento, consulte Controles de conteúdo.

Para impedir que usuários editem a tabela de funcionários

  • Adicione o seguinte código ao método de ThisDocument_Startup da classe de ThisDocument , após o código que você adicionou na etapa anterior.Esse código impede que os usuários editem a tabela de funcionários colocando a tabela dentro do objeto de GroupContentControl que você declarado anteriormente.

    Me.Tables(1).Select()
    GroupControl1 = Me.Controls.AddGroupContentControl("groupControl1")
    
    this.Tables[1].Range.Select();
    groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
    

Adicionando tabelas à coleção do bloco de construção

Adicionar tabelas a uma coleção de blocos de construção de documento no modelo de modo que os usuários possam inserir as tabelas que você criou no documento.Para obter mais informações sobre os blocos de construção de documento, consulte Controles de conteúdo.

Para adicionar tabelas aos blocos de construção no modelo

  1. Adicione o seguinte código ao método de ThisDocument_Startup da classe de ThisDocument , após o código que você adicionou na etapa anterior.Este código adiciona novos blocos de construção que contém as tabelas à coleção de Microsoft.Office.Interop.Word.BuildingBlockEntries , que contém todos os blocos de construção reutilizáveis no modelo.Novos blocos de construção são definidos em uma nova categoria chamada Funcionários e informações do cliente e atribuídos a compilação Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1em blocos.

    Dim template1 As Word.Template = TryCast(Me.AttachedTemplate, Word.Template)
    If template1 IsNot Nothing Then
    
        template1.BuildingBlockEntries.Add("Employee Table", _
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", _
            Me.Tables(1).Range, InsertOptions:=Word.WdDocPartInsertOptions.wdInsertContent)
        template1.BuildingBlockEntries.Add("Customer Table", _
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", _
            Me.Tables(2).Range, InsertOptions:=Word.WdDocPartInsertOptions.wdInsertContent)
    End If
    
    Word.Template template1 = this.AttachedTemplate as Word.Template;
    
    if (template1 != null)
    {
        object description = null;
        template1.BuildingBlockEntries.Add("Employee Table",
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information",
            this.Tables[1].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent);
        template1.BuildingBlockEntries.Add("Customer Table",
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information",
            this.Tables[2].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent);
    }
    
  2. Adicione o seguinte código ao método de ThisDocument_Startup da classe de ThisDocument , após o código que você adicionou na etapa anterior.Este código a seguir exclui as tabelas do modelo.As tabelas não são mais necessárias, porque você adicionou à galeria das bases reutilizáveis no modelo.O código coloca o primeiro documento no modo de design para que a tabela de funcionários protegida pode ser excluída.

    If Me.FormsDesign = False Then
        Me.ToggleFormsDesign()
    End If
    Me.Tables(2).Delete()
    Me.Tables(1).Delete()
    Me.ToggleFormsDesign()
    
    if (!this.FormsDesign)
    {
        this.ToggleFormsDesign();
    }
    this.Tables[2].Delete();
    this.Tables[1].Delete();
    this.ToggleFormsDesign();
    

Criando um controle de conteúdo que exibe os blocos de construção

Crie um controle de conteúdo que fornece acesso aos blocos de construção (ou seja, as tabelas) que você criou anteriormente.Os usuários podem clicar em este controle para adicionar tabelas ao documento.

Para criar um controle de conteúdo que exibe os blocos de construção

  • Adicione o seguinte código ao método de ThisDocument_Startup da classe de ThisDocument , após o código que você adicionou na etapa anterior.Esse código inicializa o objeto de BuildingBlockGalleryContentControl que você declarado anteriormente.BuildingBlockGalleryContentControl exibe todos os blocos de construção que são definidos na categoria Funcionários e informações do cliente e que têm a compilação Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1em blocos.

    BuildingBlockControl1 = Me.Controls.AddBuildingBlockGalleryContentControl( _
        Me.Paragraphs(1).Range, "buildingBlockControl1")
    BuildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information"
    BuildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1
    BuildingBlockControl1.PlaceholderText = "Choose your first building block"
    
    BuildingBlockControl2 = Me.Controls.AddBuildingBlockGalleryContentControl( _
        Me.Paragraphs(2).Range, "buildingBlockControl2")
    BuildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information"
    BuildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1
    BuildingBlockControl2.PlaceholderText = "Choose your second building block"
    
    buildingBlockControl1 = this.Controls.AddBuildingBlockGalleryContentControl(
        this.Paragraphs[1].Range, "buildingBlockControl1");
    buildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information";
    buildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1;
    buildingBlockControl1.PlaceholderText = "Choose your first building block";
    
    buildingBlockControl2 = this.Controls.AddBuildingBlockGalleryContentControl(
        this.Paragraphs[2].Range, "buildingBlockControl2");
    buildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information";
    buildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1;
    buildingBlockControl2.PlaceholderText = "Choose your second building block";
    

Testar o projeto.

Os usuários podem clicar nos controles de galeria do bloco de construção no documento para inserir a tabela de funcionários ou a tabela dos comentários de cliente.Os usuários podem digitar ou selecione respostas nos controles de conteúdo em ambas as tabelas.Os usuários podem alterar outras partes da tabela de comentários de cliente, mas não devem ser capazes modificar outras partes da tabela de funcionários.

Para testar a tabela de funcionários

  1. Pressione F5 para executar o projeto.

  2. Clique Escolha o primeiro bloco de construção para exibir o primeiro controle de conteúdo de galeria do bloco de construção.

  3. Clique na seta suspensa próxima de Galeria Personalizada 1 que dirige no controle, e selecione Tabela de funcionários.

  4. Clique na célula à direita da célula de nomes de funcionários e digite um nome.

    Verifique que você pode adicionar apenas texto à célula.PlainTextContentControl permite que usuários adicionem apenas texto, não os outros tipos de conteúdo como arte ou uma tabela.

  5. Clique na célula à direita da célula da data de admissão e selecione uma data no selecionador de data.

  6. Clique na célula à direita da célula de título e selecione um dos títulos de posição na caixa de combinação.

    Opcionalmente, digite o nome de um título da posição que não está na lista.Isso é possível porque ComboBoxContentControl permite aos usuários selecionar de uma lista de entradas ou para digite suas próprias entradas.

  7. Clique no ícone na célula à direita da célula de imagem e navegue para uma imagem para exibi-lo.

  8. Tente adicionar linhas ou colunas à tabela, e tente excluir linhas e colunas da tabela.Verifique que você não pode alterar a tabela.GroupContentControl impede que você faça as alterações.

Para testar a tabela de comentários do cliente

  1. Clique Escolha o segundo bloco de construção para exibir o segundo controle de conteúdo de galeria do bloco de construção.

  2. Clique na seta suspensa próxima de Galeria Personalizada 1 que dirige no controle, e selecione Tabela de cliente.

  3. Clique na célula à direita da célula do nome do cliente e digite um nome.

  4. Clique na célula à direita da célula de avaliação de satisfação e selecione uma das opções disponíveis.

    Verifique que você não pode digitar sua própria entrada.DropDownListContentControl permite que os usuários somente selecionar de uma lista de entradas.

  5. Clique na célula à direita da célula de comentários e digite algum feedback.

    Opcionalmente, adicione um conteúdo diferente de texto, como a arte ou uma tabela inserido.Isso é possível porque RichTextContentControl permite que os usuários para adicionar conteúdo diferente do texto.

  6. Verifique que você pode adicionar linhas ou colunas à tabela, e que você pode excluir linhas e colunas da tabela.Isso é possível porque você não protected a tabela colocando na GroupContentControl.

  7. Feche o modelo.

Próximas etapas

Você pode aprender mais sobre como usar controles de conteúdo de este tópico:

Consulte também

Tarefas

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

Como: proteger partes de documentos usando os controles de conteúdo

Conceitos

Automação do Word utilizando o Extended objetos

Controles de conteúdo

Itens de host e visão geral sobre controles de Host

Limitações de programação de itens de Host e controles de Host

Adicionar controles a documentos do Office em tempo de execução