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çã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 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

  1. No modelo do Word que está hospedado na Visual Studio designer, na faixa de opções, clique no Inserir guia.

  2. No tabelas de grupo, clique em tabelae inserir uma tabela com colunas de 2 e 4 linhas.

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

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

  5. Na faixa de opções, clique no Developer guia.

    ObservaçãoObservaçã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.

  6. No controles de grupo, clique no texto botão PlainTextContentControl para adicionar uma PlainTextContentControl a primeira célula.

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

  8. No controles de grupo, clique no Selecionador de data botão DatePickerContentControl para adicionar uma DatePickerContentControl a segunda célula.

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

  10. No controles de grupo, clique no Caixa de combinação botão ComboBoxContentControl para adicionar uma ComboBoxContentControl para a terceira célula.

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

  12. No controles de grupo, clique no Controle de conteúdo de imagem botão PictureContentControl 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

  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 no Inserir guia.

  3. No tabelas de grupo, clique em tabelae inserir uma tabela com colunas de 2 e 3 linhas.

  4. Digite o texto na primeira coluna, para que se pareça com a coluna seguinte:

    Customer Name

    Satisfação

    Comments

  5. Clique na primeira célula da segunda coluna (ao lado de Customer Name).

  6. Na faixa de opções, clique no Developer guia.

  7. No controles de grupo, clique no texto botão PlainTextContentControl para adicionar uma PlainTextContentControl a primeira célula.

  8. Clique na segunda célula da segunda coluna (ao lado de A classificação de satisfação).

  9. No controles de grupo, clique no Na lista suspensa botão DropDownListContentControl para adicionar um DropDownListContentControl a segunda célula.

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

  11. No controles de grupo, clique no Rich Text botão RichTextContentControl 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

  1. Em Solution Explorer, com o botão direito ThisDocument.cs ou ThisDocument. vbe em seguida, clique em Exibir código.

  2. 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;
    
  3. 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

  1. 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);
    }
    
  2. 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

  1. Press F5 to run the project.

  2. Clique em escolher seu 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 ao lado do personalizado Galeria 1 título no controle e, em seguida, selecione Tabela de funcionários.

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

  5. Clique na célula à direita da célula data de contrataçã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 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.

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

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

  1. Clique em escolher seu 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 ao lado do personalizado Galeria 1 título no controle e, em seguida, selecione Tabela Customer.

  3. Clique na célula à direita da célula Customer Name e digite um nome.

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

  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, por exemplo, arte ou uma tabela incorporada. Isso é possível porque o RichTextContentControl permite que os usuários adicionem conteúdo diferente de texto.

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

  7. Feche o modelo.

Próximas etapas

Você pode aprender mais sobre como usar os controles de conteúdo neste 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

Automatizar o Word usando o Extended objetos

Controles de conteúdo

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

Métodos auxiliares para controles de Host