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:
Uma edição do Visual Studio que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte Configurar um computador para desenvolver soluções do Office.
Microsoft Word.
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
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
No modelo do Word hospedado no designer do Visual Studio, na Faixa de Opções, clique na guia Inserir .
No grupo Tabelas, clique em Tabela e insira uma tabela com duas colunas e quatro linhas.
Digite o texto na primeira coluna para que ele se assemelhe à seguinte coluna:
Nome do Funcionário Data de Contratação Título Imagem Clique na primeira célula da segunda coluna (ao lado de Nome do funcionário).
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.
No grupo Controles, clique no botão Texto para adicionar um PlainTextContentControl à primeira célula.
Clique na segunda célula na segunda coluna (ao lado de Data de contratação).
No grupo Controles, clique no botão Seletor de Data para adicionar um DatePickerContentControl à segunda célula.
Clique na terceira célula na segunda coluna (ao lado de Título).
No grupo Controles, clique no botão Caixa de Combinação para adicionar um ComboBoxContentControl à terceira célula.
Clique na última célula da segunda coluna (ao lado de Imagem).
No grupo Controles, clique no botão 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
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.
Na Faixa de Opções, clique na guia Inserir .
No grupo Tabelas, clique em Tabela e insira uma tabela com duas colunas e três linhas.
Digite o texto na primeira coluna para que ele se assemelhe à seguinte coluna:
Nome do Cliente Índice de Satisfação Comentários Clique na primeira célula da segunda coluna (ao lado de Nome do cliente).
Na Faixa de Opções, clique na guia Desenvolvedor .
No grupo Controles, clique no botão Texto para adicionar um PlainTextContentControl à primeira célula.
Clique na segunda célula da segunda coluna (ao lado de Índice de Satisfação).
No grupo Controles, clique no botão Lista suspensa para adicionar um DropDownListContentControl à segunda célula.
Clique na última célula da segunda coluna (ao lado de Comentários).
No grupo Controles, clique no botão 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
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.
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.Adicione o seguinte código ao
ThisDocument_Startup
método daThisDocument
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
Adicione o seguinte código ao
ThisDocument_Startup
método daThisDocument
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.
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
Adicione o seguinte código ao
ThisDocument_Startup
método daThisDocument
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 tipoMicrosoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1
de 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); }
Adicione o seguinte código ao
ThisDocument_Startup
método daThisDocument
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.
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
Adicione o seguinte código ao
ThisDocument_Startup
método daThisDocument
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 tipoMicrosoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1
de 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
Pressione F5 para executar o projeto.
Clique em Escolher seu primeiro bloco de construção para exibir o primeiro controle de conteúdo da galeria de blocos de construção.
Clique na seta suspensa ao lado do título Galeria Personalizada 1 no controle e selecione Tabela de funcionários.
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.
Clique na célula à direita da célula Data de contratação e selecione uma data no seletor de datas.
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.
Clique no ícone na célula à direita da célula Imagem e navegue até uma imagem para exibi-la.
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
Clique em Escolher seu segundo bloco de construção para exibir o segundo controle de conteúdo da galeria de blocos de construção.
Clique na seta suspensa ao lado do título Galeria Personalizada 1 no controle e selecione Tabela do cliente.
Clique na célula à direita da célula Nome do Cliente e digite um nome.
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.
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.
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 .
Feche o modelo.
Próximas etapas
Você pode saber mais sobre como usar controles de conteúdo neste tópico:
- Vincule controles de conteúdo a partes de XML, também chamadas de partes XML personalizadas, que são incorporadas em um documento. Para obter mais informações, consulte Demonstra Passo a passo: Vincular controles de conteúdo a partes XML personalizadas.
Conteúdo relacionado
- Automatizar o Word usando objetos estendidos
- Controles de conteúdo
- Como: Adicionar controles de conteúdo a documentos do Word
- Como: Proteger partes de documentos usando controles de conteúdo
- Visão geral de itens de host e controles de host
- Limitações programáticas de itens de host e controles de host
- Adicionar controles a documentos do Office em tempo de execução