Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este passo a passo demonstra como criar uma personalização no nível do 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 Os recursos disponíveis pelo aplicativo do Office e pelo tipo de projeto.
O Word permite que você crie uma coleção de partes de documento reutilizáveis, nomeadas 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 do cliente.
Depois de criar um documento a partir do modelo, você pode adicionar qualquer 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:
Criando tabelas que contêm controles de conteúdo em um modelo do Word no momento do design.
Preenchendo um controle de conteúdo de caixa de combinação e um controle de conteúdo de lista suspensa programaticamente.
Impedindo 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, consulte Personalizar o IDE.
Pré-requisitos
Você precisará dos seguintes componentes para concluir este passo a passo:
Uma edição do Visual Studio que inclui as ferramentas de desenvolvedor do Microsoft Office. 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 em que o usuário pode 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 texto na primeira coluna para que ele se assemelhe à seguinte coluna:
Nome do funcionário Data de contratação Title Imagem Clique na primeira célula da segunda coluna (ao lado do Nome do Funcionário).
Na Faixa de Opções, clique na guia Desenvolvedor .
Observação
Se a guia Desenvolvedor não estiver visível, primeiro você deverá mostrá-la. Para obter mais informações, consulte Como mostrar a guia desenvolvedor no Ribbon.
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 uma 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 uma 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 de Imagem
para adicionar uma 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 em que 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 texto na primeira coluna para que ele se assemelhe à seguinte coluna:
Nome do cliente Classificação de satisfação Comments Clique na primeira célula da segunda coluna (ao lado do 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 da Classificação de Satisfação).
No grupo Controles, clique no botão Lista Suspensa
para adicionar uma 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 uma 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 este passo a passo, use o código para preencher as entradas em ComboBoxContentControl e DropDownListContentControl durante o tempo de execução, para que você possa ver como esses objetos funcionam.
Para modificar programaticamente a UI dos controles de conteúdo
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 seguinte código à classe
ThisDocument. Esse código declara vários objetos que você usará posteriormente neste passo a passo.Adicione o código a seguir ao
ThisDocument_Startupmétodo daThisDocumentclasse. Esse código adiciona entradas para ComboBoxContentControl e DropDownListContentControl nas tabelas e define o texto do espaço reservado 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 poderão 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 GroupContentControl para proteger parte de um documento, consulte Controles de conteúdo.
Para impedir que os usuários editem a tabela de funcionários
Adicione o código a seguir ao
ThisDocument_Startupmétodo daThisDocumentclasse, 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 documentos 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 código a seguir ao
ThisDocument_Startupmétodo daThisDocumentclasse, 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 à coleção Microsoft.Office.Interop.Word.BuildingBlockEntries, 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.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); }Adicione o código a seguir ao
ThisDocument_Startupmétodo daThisDocumentclasse, 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, pois 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 exibe 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 código a seguir ao
ThisDocument_Startupmétodo daThisDocumentclasse, 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 de bloco de construçãoMicrosoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1.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 somente texto a essa célula. O PlainTextContentControl permite que os usuários adicionem somente 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 data.
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 está na lista. Isso é possível porque o ComboBoxContentControl permite que os usuários selecionem de uma lista de opções ou digitem suas próprias opções.
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 você não pode modificar a tabela. Isso GroupContentControl impede que você faça 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 em 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 inserida. Isso é possível porque permite que os RichTextContentControl usuários adicionem conteúdo diferente do 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 uma GroupContentControl.
Feche o modelo.
Próximas etapas
Saiba mais sobre como usar controles de conteúdo neste tópico:
- Associe controles de conteúdo a partes de XML, também chamadas de partes XML personalizadas, que são inseridas em um documento. Para obter mais informações, consulte Passo a passo: associar 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 aos documentos do Office em tempo de execução