Compartilhar via


Demonstra Passo a passo: Criar um modelo usando controles de conteúdo

Este passo a passo demonstra como criar uma personalização em nível de documento que usa controles de conteúdo para criar conteúdo estruturado e reutilizável em um modelo do Microsoft Office Word.

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

O Word permite que você crie uma coleção de partes de documento reutilizáveis, chamadas blocos de construção. Este 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 diferentes tipos 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 clientes.

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

Este passo a passo ilustra as seguintes tarefas:

  • Criação de tabelas que contêm controles de conteúdo em um modelo do Word em tempo de design.

  • Preenchendo um controle de conteúdo de caixa de combinação e um controle de conteúdo de lista suspensa programaticamente.

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

  • Adicionando tabelas à coleção de blocos de construção de um modelo.

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

    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.

Pré-requisitos

Você precisará dos seguintes componentes para concluir este passo a passo:

Criar um novo projeto de modelo do Word

Crie um modelo do Word para que os usuários possam criar suas próprias cópias facilmente.

Para criar um novo projeto de modelo do Word

  1. Crie um projeto de modelo do Word com o nome MyBuildingBlockTemplate. No assistente, crie um novo documento na solução. Para obter mais informações, consulte Como: Criar projetos do Office no Visual Studio.

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

Criar a tabela de funcionários

Crie uma tabela que contenha quatro tipos diferentes de controles de conteúdo onde o usuário possa inserir informações sobre um funcionário.

Para criar a tabela de funcionários

  1. No modelo do Word hospedado no designer do Visual Studio, na Faixa de Opções, clique na guia Inserir .

  2. No grupo Tabelas, clique em Tabela e insira uma tabela com duas colunas e quatro linhas.

  3. Digite o texto na primeira coluna para que ele se assemelhe à seguinte coluna:

    Nome do Funcionário
    Data de Contratação
    Título
    Imagem
  4. Clique na primeira célula da segunda coluna (ao lado de Nome do funcionário).

  5. Na Faixa de Opções, clique na guia Desenvolvedor .

    Observação

    Se a guia Desenvolvedor não estiver visível, você deverá mostrá-la primeiro. Para obter mais informações, consulte Como mostrar a guia do desenvolvedor na faixa de opções.

  6. No grupo Controles, clique no botãoPlainTextContentControl Texto para adicionar um PlainTextContentControl à primeira célula.

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

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

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

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

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

  12. No grupo Controles, clique no botãoPictureContentControl Controle de Conteúdo da Imagem para adicionar um PictureContentControl à última célula.

Criar a tabela de comentários do cliente

Crie uma tabela que contenha 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 de comentários do cliente

  1. No modelo do Word, clique na linha após a tabela de funcionários que você adicionou anteriormente e pressione Enter para adicionar um novo parágrafo.

  2. Na Faixa de Opções, clique na guia Inserir .

  3. No grupo Tabelas, clique em Tabela e insira uma tabela com duas colunas e três linhas.

  4. Digite o texto na primeira coluna para que ele se assemelhe à seguinte coluna:

    Nome do Cliente
    Índice de Satisfação
    Comentários
  5. Clique na primeira célula da segunda coluna (ao lado de Nome do cliente).

  6. Na Faixa de Opções, clique na guia Desenvolvedor .

  7. No grupo Controles, clique no botãoPlainTextContentControl Texto para adicionar um PlainTextContentControl à primeira célula.

  8. Clique na segunda célula da segunda coluna (ao lado de Índice de Satisfação).

  9. No grupo Controles, clique no botão DropDownListContentControl Lista suspensa para adicionar um DropDownListContentControl à segunda célula.

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

  11. No grupo Controles, clique no botão RichTextContentControl Rich Text para adicionar um RichTextContentControl à última célula.

Preencher a caixa de combinação e a lista suspensa programaticamente

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

Para modificar a interface do usuário dos controles de conteúdo programaticamente

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

  2. Adicione o código a seguir à classe ThisDocument . Esse código declara vários objetos que você usará posteriormente nesta explicação passo a passo.

    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 ThisDocument_Startup método da ThisDocument classe. Esse código adiciona entradas ao ComboBoxContentControl e nas tabelas e DropDownListContentControl define o texto do espaço reservado que é exibido em cada um desses controles antes que o usuário os edite.

    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);
    

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

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

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

  1. Adicione o seguinte código ao ThisDocument_Startup método da ThisDocument classe, 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 GroupContentControl objeto que você declarou anteriormente.

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

Adicionar as tabelas à coleção de blocos de construção

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

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

  1. Adicione o seguinte código ao ThisDocument_Startup método da ThisDocument classe, após o código que você adicionou na etapa anterior. Esse código adiciona novos blocos de construção que contêm as tabelas para a coleção Microsoft.Office.Interop.Word.BuildingBlockEntrys, que contém todos os blocos de construção reutilizáveis no modelo. Os novos blocos de construção são definidos em uma nova categoria chamada Informações do Funcionário e do Cliente e recebem o tipo Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1de bloco de construção.

    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 ThisDocument_Startup método da ThisDocument classe, após o código que você adicionou na etapa anterior. Esse código exclui as tabelas do modelo. As tabelas não são mais necessárias, porque você as adicionou à galeria de blocos de construção reutilizáveis no modelo. O código primeiro coloca o documento no modo de design para que a tabela de funcionários protegida possa ser excluída.

    if (!this.FormsDesign)
    {
        this.ToggleFormsDesign();
    }
    this.Tables[2].Delete();
    this.Tables[1].Delete();
    this.ToggleFormsDesign();
    

Criar um controle de conteúdo que exiba os blocos de construção

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

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

  1. Adicione o seguinte código ao ThisDocument_Startup método da ThisDocument classe, após o código que você adicionou na etapa anterior. Esse código inicializa o BuildingBlockGalleryContentControl objeto que você declarou anteriormente. O BuildingBlockGalleryContentControl exibe todos os blocos de construção definidos na categoria Informações do Funcionário e do Cliente e que têm o tipo Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1de bloco de construção .

    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 da galeria de blocos de construção no documento para inserir a tabela de funcionários ou a tabela de comentários do cliente. Os usuários podem digitar ou selecionar respostas nos controles de conteúdo em ambas as tabelas. Os usuários podem modificar outras partes da tabela de comentários do cliente, mas não devem ser capazes de modificar outras partes da tabela de funcionários.

Para testar a tabela de funcionários

  1. Pressione F5 para executar o projeto.

  2. Clique em Escolher seu primeiro bloco de construção para exibir o primeiro controle de conteúdo da galeria de blocos de construção.

  3. Clique na seta suspensa ao lado do título Galeria Personalizada 1 no controle e selecione Tabela de funcionários.

  4. Clique na célula à direita da célula Nome do Funcionário e digite um nome.

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

  5. Clique na célula à direita da célula Data de contratação e selecione uma data no seletor de datas.

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

    Opcionalmente, digite o nome de um cargo que não esteja na lista. Isso é possível porque o permite que os ComboBoxContentControl usuários selecionem em uma lista de entradas ou digitem suas próprias entradas.

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

  8. Tente adicionar linhas ou colunas à tabela e tente excluir linhas e colunas da tabela. Verifique se não é possível modificar a tabela. O GroupContentControl impede que você faça quaisquer modificações.

Para testar a tabela de comentários do cliente

  1. Clique em Escolher seu segundo bloco de construção para exibir o segundo controle de conteúdo da galeria de blocos de construção.

  2. Clique na seta suspensa ao lado do título Galeria Personalizada 1 no controle e selecione Tabela do cliente.

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

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

    Verifique se você não pode digitar sua própria entrada. O DropDownListContentControl permite que os usuários selecionem apenas a partir de uma lista de entradas.

  5. Clique na célula à direita da célula Comentários e digite alguns comentários.

    Opcionalmente, adicione algum conteúdo diferente de texto, como arte ou uma tabela incorporada. Isso é possível porque o permite que os RichTextContentControl usuários adicionem conteúdo diferente de texto.

  6. Verifique se você pode adicionar linhas ou colunas à tabela e se pode excluir linhas e colunas da tabela. Isso é possível porque você não protegeu a tabela colocando-a em um GroupContentControlarquivo .

  7. Feche o modelo.

Próximas etapas

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