Demonstra Passo a passo: Criando um modelo usando os controles de conteúdo
Esta explicação passo a passo demonstra como criar uma personalização em nível de documento que usa controles de conteúdo para criar o conteúdo estruturado e reutilizável em um modelo do Word de Microsoft Office.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
O Word permite que você criar uma coleção de partes do documento reutilizável, chamado blocos de construção. Esta 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 diferentes tipos de conteúdo, como texto sem formatação ou datas. Uma das tabelas contém informações sobre um funcionário e outra tabela contém os comentários dos clientes.
Depois de criar um documento do modelo, você pode adicionar qualquer uma das tabelas no documento usando vários BuildingBlockGalleryContentControl objetos, que exibir os blocos de construção disponíveis no modelo.
This walkthrough illustrates the following tasks:
A criação de tabelas que contêm conteúdo controla uma palavra modelo em tempo de design.
Preencher um controle de conteúdo de caixa de combinação e um controle de conteúdo da lista drop-down programaticamente.
Impedindo que os usuários a edição de uma tabela especificada.
Adicionar tabelas à coleção de bloco de construção de um modelo.
Criar um controle de conteúdo que exibe os blocos de construção disponíveis no modelo.
Observaçã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 do Visual Studio. |
Pré-requisitos
You need the following components to complete this walkthrough:
-
Uma edição do Visual Studio 2010 que inclua as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.100\).md).
- Microsoft Office Word 2007 ou Word 2010.
Criar um novo projeto de modelo do Word
Crie um modelo do Word para que os usuários podem criar facilmente suas próprias cópias.
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. For more information, see Como: Criar projetos do Office em Visual Studio.
Visual StudioAbre o novo modelo do Word no designer e adiciona a MyBuildingBlockTemplate de projeto para Solution Explorer.
Criando a tabela de funcionários
Crie 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
No modelo do Word que está hospedado na Visual Studio designer, na faixa de opções, clique no Inserir guia.
No tabelas de grupo, clique em tabelae inserir uma tabela com colunas de 2 e 4 linhas.
Digite o texto na primeira coluna, para que se pareça com a coluna seguinte:
Nome do funcionário
Data da contratação
Title
Imagem
Clique na primeira célula na segunda coluna (ao lado de Nome do funcionário).
Na faixa de opções, clique no Developer guia.
Observação Se o Developer guia não estiver visível, você deve primeiro mostrá-lo. For more information, see Como: Mostrar guia desenvolvedor na faixa de opções.
No controles de grupo, clique no texto botão para adicionar uma PlainTextContentControl a primeira célula.
Clique na segunda célula na segunda coluna (ao lado de Data de contratação).
No controles de grupo, clique no Selecionador de data botão para adicionar uma DatePickerContentControl a segunda célula.
Clique na terceira célula na segunda coluna (ao lado de título).
No controles de grupo, clique no Caixa de combinação botão para adicionar uma ComboBoxContentControl para a terceira célula.
Clique na última célula na segunda coluna (ao lado de imagem).
No controles de grupo, clique no Controle de conteúdo de imagem botão para adicionar uma PictureContentControl para a última célula.
Criar a tabela de comentários do cliente
Crie uma tabela que contém os três tipos diferentes de controles de conteúdo, onde o usuário pode inserir informações de feedback 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 no Inserir guia.
No tabelas de grupo, clique em tabelae inserir uma tabela com colunas de 2 e 3 linhas.
Digite o texto na primeira coluna, para que se pareça com a coluna seguinte:
Customer Name
Satisfação
Comments
Clique na primeira célula da segunda coluna (ao lado de Customer Name).
Na faixa de opções, clique no Developer guia.
No controles de grupo, clique no texto botão para adicionar uma PlainTextContentControl a primeira célula.
Clique na segunda célula da segunda coluna (ao lado de A classificação de satisfação).
No controles de grupo, clique no Na lista suspensa botão para adicionar um DropDownListContentControl a segunda célula.
Clique na última célula da segunda coluna (ao lado de comentários).
No controles de grupo, clique no Rich Text botão para adicionar uma RichTextContentControl para a última célula.
Preenchendo a caixa de combinação e a lista do Drop Down programaticamente
Você pode inicializar os controles de conteúdo em tempo de design usando o Propriedades janela no Visual Studio. Você também pode inicializá-los em tempo de execução, o que permite que você defina seus estados iniciais dinamicamente. Para esta explicação, use o código para preencher as entradas de ComboBoxContentControl e DropDownListContentControl em tempo de execução para que você possa ver como esses objetos funciona.
Para modificar a interface do usuário dos controles de conteúdo por meio de programação
Em Solution Explorer, com o botão direito ThisDocument.cs ou ThisDocument. vbe em seguida, clique em Exibir código.
Add the following code to the ThisDocument class. Esse código declara vários objetos que você usará posteriormente nesta explicação 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;
Adicione o seguinte código para o ThisDocument_Startup método de ThisDocument classe. Este código adiciona entradas para o ComboBoxContentControl e DropDownListContentControl nas tabelas e define o texto de espaço reservado que é exibido em cada um desses controles antes do usuário os edita.
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 GroupContentControl o objeto que você declarou anteriormente para proteger a tabela de funcionários. Após proteger a tabela, os usuários ainda poderá editar os controles de conteúdo da tabela. No entanto, eles não é possível editar o texto na primeira coluna ou modificar a tabela de outras formas, como, por exemplo, adicionando ou excluindo linhas e colunas. Para obter mais informações sobre como usar um 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 para o ThisDocument_Startup método de ThisDocument classe, após o código que você adicionou na etapa anterior. Esse código impede que os usuários a edição de tabela de funcionários colocando-se a tabela dentro do GroupContentControl objeto declarada por você anteriormente.
Me.Tables(1).Select() GroupControl1 = Me.Controls.AddGroupContentControl("groupControl1")
this.Tables[1].Range.Select(); groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
Adicionando as tabelas para a coleção de bloco de construção
Adicione as tabelas a uma coleção de blocos de construção no modelo para que os usuários podem inserir 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 as tabelas para os blocos de construção no modelo
Adicione o seguinte código para o ThisDocument_Startup método de ThisDocument classe, 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 para o Microsoft.Office.Interop.Word.BuildingBlockEntries coleção, 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 de clientes e são atribuídos o tipo de bloco de construção Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1.
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); }
Adicione o seguinte código para o ThisDocument_Startup método de 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ê 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 protegidos 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();
Criar um controle de conteúdo que exibe os blocos de construção
Crie um controle de conteúdo que fornece acesso a blocos de construção (ou seja, as tabelas) que você criou anteriormente. Os usuários podem clicar esse controle para adicionar as tabelas no documento.
Para criar um controle de conteúdo que exibe os blocos de construção
Adicione o seguinte código para o ThisDocument_Startup método de ThisDocument classe, após o código que você adicionou na etapa anterior. Esse código inicializa a BuildingBlockGalleryContentControl objeto declarada por você anteriormente. O BuildingBlockGalleryContentControl exibe todos os blocos de construção que são definidos na categoria funcionários e informações de clientes e que têm o tipo de bloco de construção Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1.
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";
Testing the Project
Os usuários podem clicar os controles de galeria de bloco de construção no documento para inserir tabela de funcionários ou a tabela de comentários do cliente. Usuários podem digitar ou selecionar respostas nos controles de conteúdo em ambas as tabelas. Os usuários podem modificar a outras partes da tabela customer feedback, mas não deve ser capazes de modificar a outras partes da tabela de funcionários.
Para testar a tabela de funcionários
Press F5 to run the project.
Clique em escolher seu primeiro bloco de construção para exibir o primeiro controle de conteúdo de galeria do bloco de construção.
Clique na seta suspensa ao lado do personalizado Galeria 1 título no controle e, em seguida, selecione Tabela de funcionários.
Clique na célula à direita da célula de nome do funcionário e digite um nome.
Verifique se o que você pode adicionar apenas o texto a essa célula. O PlainTextContentControl permite aos usuários adicionar apenas texto, não em outros tipos de conteúdo, como arte ou uma tabela.
Clique na célula à direita da célula data de contratação e selecione uma data no selecionador de data.
Clique na célula à direita da célula de título e selecione um dos títulos de trabalho na caixa de combinação.
Opcionalmente, digite o nome de um cargo que não esteja na lista. Isso é possível porque o ComboBoxContentControl permite que os usuários para selecionar uma lista de entradas ou digitar suas próprias entradas.
Clique no ícone na célula à direita da célula de imagem e procurar uma imagem para exibi-la.
Tente adicionar linhas ou colunas na tabela e tente excluir linhas e colunas da tabela. Verifique se que você não pode modificar a tabela. O 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 de galeria do bloco de construção.
Clique na seta suspensa ao lado do personalizado Galeria 1 título no controle e, em seguida, selecione Tabela Customer.
Clique na célula à direita da célula Customer Name e digite um nome.
Clique na célula à direita da célula satisfação de classificação e selecione uma das opções disponíveis.
Verifique se o que não é possível digitar sua própria entrada. O DropDownListContentControl permite que os usuários somente selecionar 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, por exemplo, arte ou uma tabela incorporada. Isso é possível porque o RichTextContentControl permite que os usuários adicionem conteúdo diferente de texto.
Verifique se que você pode adicionar linhas ou colunas na tabela e que você pode excluir linhas e colunas da tabela. Isso é possível porque a tabela não tiver protegido, colocando-o um GroupContentControl.
Feche o modelo.
Próximas etapas
Você pode aprender mais sobre como usar os controles de conteúdo neste tópico:
- Vincule os controles de conteúdo para partes do XML, também chamado de partes XML, que são incorporados em um documento. For more information, see Demonstra Passo a passo: Controles de conteúdo de ligação para partes do XML personalizado.
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
Automatizar o Word usando o Extended objetos
Itens de host e a 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