Controles de conteúdo
Controles de conteúdo fornecem uma maneira para você, para documentos de design e modelos que possuem esses recursos:
Uma interface de usuário (UI) que tem controlado a entrada como um formulário.
Restrições de impedir que os usuários editem protegido seções do documento ou modelo. Para obter mais informações, consulte Proteger partes de documentos por usando controles de conteúdo.
Vinculação de dados para uma fonte de dados. Para obter mais informações, consulte Vinculação de dados para controles de conteúdo.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Para uma demonstração de vídeo relacionada, consulte Vinculação de dados para o Word 2007 conteúdo controles usando Visual Studio Tools para o Office System (3.0).
Visão geral dos controles de conteúdo
Os controles de conteúdo fornecem uma interface do usuário que é otimizado para ambos os usuário de entrada e de impressão. Quando você adiciona um controle de conteúdo para um documento, o controle é identificado por uma borda, título e texto temporário que pode fornecer instruções para o usuário. A borda e o título do controle não aparecem em versões impressas do documento.
Por exemplo, se desejar que o usuário insira uma data em uma seção do documento, você pode adicionar um controle de conteúdo de selecionador de data para o documento. Quando os usuários clicam no controle, o selecionador de data padrão da interface do usuário é exibida. Você também pode definir as propriedades do controle para definir o calendário regional que é exibido e para especificar o formato de data. Depois que o usuário escolher uma data, a interface do usuário do controle está oculto e somente a data aparece se o usuário imprime o documento.
Controles de conteúdo também ajudam a fazer o seguinte:
Impedi usuários de editar ou excluir partes de um documento. Isso é útil se você tiver informações em um documento ou modelo que os usuários devem poder ler mas não editar, ou se você quiser que os usuários possam editar os controles de conteúdo, mas não excluí-los.
Vincule dados partes de um documento ou modelo. Você pode vincular controles de conteúdo para campos de banco de dados, objetos gerenciados no .NET Framework, elementos XML, que são armazenados no documento e outras fontes de dados.
Em projetos de nível de documento, você pode adicionar controles de conteúdo ao seu documento em tempo de design ou em tempo de execução. Em projetos de nível de aplicativo, você pode adicionar controles de conteúdo para qualquer documento aberto em tempo de execução. For more information, see Como: Adicionar controles de conteúdo para documentos do Word.
Observação |
---|
Você pode usar controles de conteúdo apenas em documentos que são salvos no formato XML aberto. É possível usar os controles de conteúdo em documentos são salvos no formato de documento (. doc) do Word 97-2003. |
Tipos de controles de conteúdo
Há nove tipos diferentes de controles de conteúdo que você pode adicionar a documentos. A maioria dos controles de conteúdo têm um tipo correspondente Microsoft.Office.Tools.Word namespace. Você também pode usar um genérico ContentControl, que pode representar qualquer um dos controles de conteúdo disponível. Para uma explicação passo a passo que demonstra como usar cada um dos controles de conteúdo disponíveis, consulte Demonstra Passo a passo: Criando um modelo usando os controles de conteúdo.
Galeria de blocos de construção
Uma Galeria de bloco de construção permite aos usuários selecionar em uma lista de blocos de construção de documento para inserir em um documento. Um bloco de construção de documento é uma parte do conteúdo foi criada para ser usada várias vezes, como, por exemplo, uma folha de rosto comuns, uma tabela formatada ou um cabeçalho. Para obter mais informações, consulte o BuildingBlockGalleryContentControl tipo. Para obter mais informações sobre os blocos de construção, consulte o que há de novo para desenvolvedores no Word 2007.
Check Box
Uma caixa de seleção fornece uma interface de usuário representa um estado binário: marcada ou desmarcada. Esse tipo de controle de conteúdo está disponível somente no Word 2010.
Ao contrário de outros tipos de controles de conteúdo, o Visual Studio Tools for Office runtime não fornece um tipo específico, que representa um controle de conteúdo a caixa de seleção. Em outras palavras, não há nenhum CheckBoxContentControl tipo. No entanto, você ainda pode criar um controle de caixa de seleção de conteúdo, adicionando um genérico ContentControl a um documento programaticamente. Para obter mais informações, consulte Controles de conteúdo da caixa de seleção em projetos de 2010 Word.
Combo Box
Uma caixa de combinação exibe uma lista de itens que os usuários podem selecionar. Ao contrário de uma lista suspensa, a caixa de combinação permite aos usuários adicionar seus próprios itens. Para obter mais informações, consulte o ComboBoxContentControl tipo.
Selecionador de data
Um selecionador de data fornece um interface do usuário de calendário para selecionar uma data. O calendário é exibido quando o usuário final clica na seta suspensa no controle. Você pode usar calendários regionais e formatos de data diferentes. Para obter mais informações, consulte o DatePickerContentControl tipo.
Na lista suspensa
Uma lista suspensa exibe uma lista de itens que os usuários podem selecionar. Ao contrário de uma caixa de combinação, a lista drop-down não permitem aos usuários adicionar ou editar itens. Para obter mais informações, consulte o DropDownListContentControl tipo.
Group
O controle de um grupo define uma área protegida de um documento que os usuários não é possível editar ou excluir. Um controle de grupo pode conter itens de qualquer documento, como, por exemplo, texto, tabelas, gráficos e outro controles de conteúdo. Para obter mais informações, consulte o GroupContentControl tipo.
Imagem
Um controle de imagem exibe uma imagem. Você pode especificar a imagem no tempo de design ou tempo de execução, ou os usuários podem clicar esse controle para selecionar uma imagem para inserir no documento. Para obter mais informações, consulte o PictureContentControl tipo.
Rich Text
Um controle rich text contém o texto ou outros itens, como, por exemplo, tabelas, imagens ou outro controles de conteúdo. Para obter mais informações, consulte o RichTextContentControl tipo.
Texto sem formatação
Um controle de texto sem formatação contém texto. Um controle de texto sem formatação não pode conter outros itens, como, por exemplo, tabelas, imagens ou outro controles de conteúdo. Além disso, todo o texto em um controle de texto sem formatação tem a mesma formatação. Por exemplo, se você colocar em itálico uma palavra de uma frase que está em um controle de texto sem formatação, todo o texto dentro do controle está em itálico. Para obter mais informações, consulte o PlainTextContentControl tipo.
Controle de conteúdo genérico
Um controle de conteúdo genérico é um ContentControl objeto que pode representar qualquer um dos tipos disponíveis de controles de conteúdo. Você pode alterar uma ContentControl o objeto se comporte como um tipo diferente de controle de conteúdo usando o Type propriedade. Por exemplo, se você criar um ContentControl de objeto que representa um texto sem formatação de controle, você pode alterá-lo em tempo de execução para que ele se comporta como uma caixa de combinação.
Você pode criar ContentControl objetos somente em tempo de execução, não no tempo de design. For more information, see Como: Adicionar controles de conteúdo para documentos do Word.
Recursos comuns de controles de conteúdo
Controles de conteúdo mais compartilham um conjunto de membros que você pode usar para realizar tarefas comuns. A tabela a seguir descreve algumas das tarefas que você pode executar usando esses membros.
Para esta tarefa: |
Faça o seguinte: |
---|---|
Obtém ou define o texto que é exibido no controle. |
Use o Text propriedade.
Observação
O PictureContentControl e ContentControl tipos de não têm esta propriedade.
|
Obtém ou define o texto temporário que é exibido no controle até que um usuário edita o controle, o controle é preenchido com dados de uma fonte de dados ou o conteúdo do controle é excluído. |
Use o PlaceholderText propriedade.
Observação
O PictureContentControl não tem um tipo de propriedade.
|
Obtém ou define o título que é exibido na borda do controle de conteúdo quando o usuário clica nele. |
Use o Title propriedade. |
Remova o controle do documento automaticamente depois que o usuário edita o controle. (O texto no controle permanecerá no documento). |
Use o Temporary propriedade. |
Execute código quando o usuário clica no controle content, ou quando o cursor é movido para o controle de conteúdo por meio de programação. |
Lidar com o Entering o evento de controle. |
Execute código quando o usuário clica fora do controle de conteúdo, ou quando o cursor é movido programaticamente fora do controle de conteúdo. |
Lidar com o Exiting o evento de controle. |
Executar código após o controle de conteúdo é adicionado ao documento, como resultado de uma operação de refazer ou desfazer a operação. |
Lidar com o Added o evento de controle. |
Execute código antes do controle de conteúdo é excluído do documento. |
Lidar com o Deleting o evento de controle. |
Protegendo as partes de documentos usando os controles de conteúdo
Quando você protege uma parte de um documento, você impedir que os usuários alterem ou excluindo o conteúdo nessa parte do documento. Há várias maneiras de proteger partes de um documento usando os controles de conteúdo.
Se a área que você deseja proteger está dentro de um controle de conteúdo, você pode usar as propriedades do controle de conteúdo para impedir que usuários editar ou excluir o controle:
O LockContents propriedade impede que os usuários editem o conteúdo.
O LockContentControl propriedade impede que os usuários a exclusão do controle.
Se a área que você deseja proteger não está dentro de um controle de conteúdo, ou se você deseja proteger uma área que contém os controles de conteúdo e outros tipos de conteúdo, você pode colocar toda a área em um GroupContentControl. Ao contrário de outro controles de conteúdo, um GroupContentControl não fornece nenhuma interface do usuário que é visível ao usuário. Sua única finalidade é definir uma região em que os usuários não podem editar.
Observação |
---|
Se você criar um GroupContentControl que contém os controles de conteúdo incorporados, os controles de conteúdo incorporados não serão automaticamente protegidos. Você deve usar o LockContents propriedade de cada controle incorporado para impedir que usuários editem seu conteúdo. |
Para obter mais informações sobre como usar os controles de conteúdo para proteger partes de documentos, consulte Como: Proteger partes de documentos usando os controles de conteúdo.
Ligação de dados a controles de conteúdo
Você pode exibir dados em documentos, vinculando o controle de conteúdo a uma fonte de dados. Quando a fonte de dados é atualizada, o controle content reflete as alterações. Você também pode salvar as alterações de volta para a fonte de dados.
Controles de conteúdo fornecem as seguintes opções de vinculação de dados:
Você pode vincular controles de conteúdo para os campos de banco de dados ou objetos gerenciados usando o mesmo modelo de ligação de dados, como o Windows Forms.
Você pode vincular controles de conteúdo para os elementos em pedaços de XML (também denominada partes XML) que são incorporados no documento.
Para uma visão geral de vinculação de controles de host em soluções do Office para dados, consulte A ligação de dados a controles em soluções do Office.
Usando os modelo de vinculação de dados do Windows formulários
Controles de conteúdo mais suporte para o modelo de vinculação de dados simples que usa o Windows Forms. Ligação de dados simples significa que um controle está vinculado a um elemento de dados único, como, por exemplo, um valor em uma coluna de uma tabela de dados. For more information, see Ligação de dados e o Windows Forms.
Em projetos de nível de documento, você pode vincular dados a controles de conteúdo usando o Fontes de dados janela no Visual Studio. Para obter mais informações sobre como adicionar controles de conteúdo com dados vinculados a documentos, consulte Como: Preencher documentos com dados de um banco de dados. e Como: Preencher documentos com dados de objetos.
A tabela a seguir lista os controles de conteúdo, você pode vincular a cada tipo de dados de Fontes de dados janela.
Data type |
Controle de conteúdo padrão |
Outro controles de conteúdo que podem ser vinculado a esse tipo de dados |
---|---|---|
Bytematriz |
None |
Em projetos de nível de aplicativo e de documento, você pode vincular um controle de conteúdo a uma fonte de dados programaticamente, usando o Add() método o DataBindings a propriedade do controle. Se você fizer isso, passar a seqüência de caracteres texto para o propertyName parâmetro da Add() método. O Text é a propriedade de vinculação de dados padrão de controles de conteúdo.
Controles de conteúdo também oferecem suporte a vinculação de dados bidirecional, na qual as alterações no controle são atualizadas para a fonte de dados. For more information, see Como: Atualizar uma fonte de dados com dados de um controle de Host.
Observação |
---|
Controles de conteúdo não suportam ligação de dados complexos. Se você vincular um DropDownListContentControl ou ComboBoxContentControl a uma fonte de dados usando o modelo de dados do Windows Forms, os usuários verão apenas um único valor quando clicam no controle. Se você desejar vincular esses controles um conjunto de valores de dados que os usuários podem escolher, você pode vincular esses controles para os elementos em uma parte XML personalizada. |
Controles de conteúdo de ligação para partes do XML personalizado
Você pode vincular alguns controles de conteúdo para os elementos em partes XML personalizadas que são incorporados no documento. Para obter mais informações sobre as partes XML, consulte Visão geral de partes XML personalizada.
Para vincular a um controle de conteúdo a um elemento em uma parte XML personalizada, use o XMLMapping a propriedade do controle. O exemplo de código a seguir demonstra como vincular um PlainTextContentControl para o Price elemento sob o Product o nó em uma parte XML personalizada, que já foi adicionado ao documento.
plainTextContentControl1.XMLMapping.SetMapping("/Product/Price")
plainTextContentControl1.XMLMapping.SetMapping("/Product/Price", String.Empty, null);
Para uma explicação passo a passo que demonstra como vincular os controles de conteúdo para partes XML em mais detalhes, consulte Demonstra Passo a passo: Controles de conteúdo de ligação para partes do XML personalizado.
Quando você vincula um controle de conteúdo para uma parte XML personalizada, a vinculação de dados bidirecional é automaticamente ativada. Se um usuário edita o texto no controle, os elementos XML correspondentes são atualizados automaticamente. Da mesma forma, se os valores de elemento em partes XML personalizadas forem alterados, os controles de conteúdo são vinculados aos elementos XML exibirá os novos dados.
Você pode vincular os seguintes tipos de controles de conteúdo para partes XML:
Ligação de eventos para controles de conteúdo de dados
Todos os controles de conteúdo fornecem um conjunto de eventos que você pode manipular para executar tarefas relacionadas a dados, como, por exemplo, validando o texto em um controle atende a determinados critérios antes da fonte de dados é atualizada. A tabela a seguir lista os eventos de controle de conteúdo que estão relacionados à vinculação de dados.
Task |
Event |
---|---|
Execute código antes do Word atualiza automaticamente o texto em um controle de conteúdo está vinculado a um componente XML personalizado. |
|
Executar códigos logo antes que o Word atualiza automaticamente os dados em uma parte XML personalizada que está acoplado a um conteúdo controlar (ou seja, depois que o texto no controle content é alterado). |
|
Execute seu próprio código para validar o conteúdo do controle, de acordo com critérios personalizados. |
|
Executar códigos depois que o conteúdo do controle foi validado com êxito. |
Limitações dos controles de conteúdo
Quando você usa controles de conteúdo em seus projetos do Office, lembre-se das seguintes limitações.
Diferenças de comportamento entre o tempo de Design e tempo de execução
Muitas das limitações que o Word Microsoft Office impõe em controles de conteúdo em tempo de execução não são impostas em tempo de design. Ao criar a interface do usuário de uma solução de nível de documento em Visual Studio, certifique-se de modificar controles de conteúdo apenas em formas que têm suporte em tempo de execução.
Se você modificar um controle de conteúdo em tempo de design, de forma que o controle não dá suporte em tempo de execução, o Visual Studio designer não irá alertá-lo de alterações sem suporte. No entanto, quando você depurar ou executa o projeto, ou se você salva e reabrir o projeto, o Word exibirá um erro mensagem e solicite permissão para reparar o documento. Quando você repara o documento, o Word remove tudo sem suporte de conteúdo e formatação do controle.
Por exemplo, Word não impede que você adicionar uma tabela para um PlainTextContentControl em tempo de design. No entanto, como PlainTextContentControl objetos não podem conter tabelas em tempo de execução, o Word exibirá uma mensagem de erro quando o documento é aberto.
Observe também que muitas propriedades que definem o comportamento de controles de conteúdo não têm efeito em tempo de design. Por exemplo, se você definir a LockContents propriedade de um controle de conteúdo True em tempo de design, você ainda poderá editar o texto no controle na Visual Studio designer. Essa propriedade apenas impede que os usuários o controle de edição em tempo de execução.
Limitações do evento
Controles de conteúdo não fornecem um evento que é gerado quando o usuário altera o texto ou outros itens no controle. Por exemplo, não há nenhum evento que é gerado quando um usuário seleciona um item diferente em um DropDownListContentControl ou ComboBoxContentControl.
Para determinar quando um usuário edita o conteúdo de um controle de conteúdo, você pode vincular o controle a uma parte XML personalizada e, em seguida, manipule o StoreUpdating de evento. Este evento é gerado quando o usuário altera o conteúdo de um controle acoplado a um componente XML personalizado. Para uma explicação passo a passo que demonstra como acoplar um controle de conteúdo a uma parte XML personalizada, consulte Demonstra Passo a passo: Controles de conteúdo de ligação para partes do XML personalizado.
Controles de conteúdo da caixa de seleção em projetos de 2010 do Word
Word 2010 introduziu um novo tipo de controle de conteúdo que representa uma caixa de seleção. No entanto, o Visual Studio Tools for Office runtime não fornece um correspondente CheckBoxContentControl tipo para uso em projetos do Office. Para criar um controle de conteúdo da caixa de seleção em um projeto de 2010 do Word, use o AddContentControl método para criar um Microsoft.Office.Tools.Word.ContentControl object e passar a wdContentControlCheckBox valor para o método para especificar um controle de conteúdo a caixa de seleção. O exemplo de código a seguir demonstra como fazer isso.
Me.Paragraphs(1).Range.InsertParagraphBefore()
Me.Paragraphs(1).Range.Select()
Dim checkBoxControl1 As Microsoft.Office.Tools.Word.ContentControl =
Me.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox)
' The following line of code compiles in projects that target the .NET Framework 4, but it does not compile
' in projects that target the .NET Framework 3.5.
checkBoxControl1.Checked = True
' In projects that target the .NET Framework 3.5, use the following code.
checkBoxControl1.InnerObject.Checked = True
this.Paragraphs[1].Range.InsertParagraphBefore();
this.Paragraphs[1].Range.Select();
Microsoft.Office.Tools.Word.ContentControl checkBoxControl1 =
this.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox);
// The following line of code compiles in projects that target the .NET Framework 4, but it does not compile
// in projects that target the .NET Framework 3.5.
checkBoxControl1.Checked = true;
// In projects that target the .NET Framework 3.5, use the following code.
checkBoxControl1.InnerObject.Checked = true;
Observação |
---|
O Checked propriedade de Microsoft.Office.Tools.Word.ContentControl objetos podem ser usados diretamente apenas em projetos que visam a .NET Framework 4. Em projetos destinados a.NET Framework 3.5, você deve usar o InnerObject propriedade para acessar o Checked a propriedade da Microsoft.Office.Interop.Word.ContentControl objeto. For more information, see Limitações de programação de itens de Host e controles de Host. |
Consulte também
Tarefas
Como: Adicionar controles de conteúdo para documentos do Word
Demonstra Passo a passo: Criando um modelo usando os controles de conteúdo
Conceitos
Automatizar o Word usando o Extended objetos
Limitações de programação de itens de Host e controles de Host