Demonstra Passo a passo: Adicionar controles a um documento em tempo de execução em um aplicativo Nível suplemento
Se aplica a |
---|
As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office. Tipo de Projeto
Versão do Microsoft Office
For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto. |
Iniciando no Visual Studio 2008 Serviço Pack 1 (SP1), você pode adicionar controles a qualquer documento aberto do Microsoft Office Word 2007 usando um suplemento do nível de aplicativo.Esta explicação passo a passo demonstra como usar a Faixa de Opções para permitir que os usuários Adicionar um Button ou um RichTextContentControl em um documento.
Essa explicação passo a passo ilustra as seguintes tarefas:
Criar uma nova palavra Adicionar no projeto.
Fornece uma interface de usuário (UI) para adicionar controles ao documento.
Adicionar controles ao documento em tempo de execução.
Remover controles de o documento.
Observação: |
---|
Seu computador pode mostrar diferentes nomes ou localizações 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 Configurações do Visual Studio. |
Pré-requisitos
Para completar este passo a passo, são necessários os seguintes componentes:
Ferramentas do Visual Studio para o Office (um componente opcional do O Visual Studio 2008 Professional e Visual Studio Team System).
O Visual Studio 2008 SP1.
Microsoft Office Word 2007.
Criar uma nova palavra Adicionar - projeto
Iniciar Criando um projeto de suplemento do Word 2007.
Para criar uma nova palavra Adicionar - projeto
- Criar um aplicativo-nível Adicionar no projeto para o Word 2007 com o nome WordDynamicControls.For more information, see Como: Criar o Visual Studio Tools para projetos do Office.
Fornecer uma interface de usuário para adicionar controles a um documento
Adicionar uma guia Personalizar à Faixa de Opções no Word.Os usuários podem selecionar caixas de Marcar na guia para adicionar controles a um documento.
Para fornecer uma interface do usuário para adicionar controles a um documento
No menu Project, clique em Add New Item.
No Adicionar Novo Item caixa de diálogo, Selecionar Da Faixa de Opções (Designer Visual).
Alterar o nome da Novo fita para MyRibbone clique em Adicionar.
O arquivo de de MyRibbon.vb de ou MyRibbon.cs abre no Designer da Faixa de Opções e exibe uma Guiaulação padrão e o AAgruparar.
No Designer da Faixa de Opções, clique no grupo de De grupo1.
Na janela Properties, Alterar Rótulo propriedadeGrupo1 para adicionar controles.
Na guia Controles da Faixa de Opções do Officede De caixa de ferramentas, arraste um controle do Caixa de Seleção até Grupo1.
Clique em CheckBox1 para Selecionar-lo.
Na janela Properties, Alterar as propriedades a seguir.
Propriedade
Value (Valor)
Nome
addButtonComboBox
Rótulo
Adicionar botão
Adicionar uma segunda caixa de Marcar para Grupo1 e, em seguida, Alterar as propriedades a seguir.
Propriedade
Value (Valor)
Nome
addRichTextCheckBox
Rótulo
Adicionar Controlarar de rich Texto
No Designer de Faixa de Opções, clique Duplo em Adicionar botão.
O manipulador de eventos Click do botão Adicionar Caixa de Marcar abre no Editor de código.
Retorne para o Designer da Faixa de Opções e clique Duplo em Adicionar Rich Texto Controlar.
O manipulador de eventos Click da caixa de Marcar Adicionar Rich Texto Controlarar abre no Código Editor.
Posteriormente nesta explicação passo a passo, você irá adicionar código para esses manipuladores de eventos para adicionar e remover controles no documento ativo.
Adicionando e removendo os controles em que o documento ativo
In the add-in code, you must convert the active document into a Microsoft.Office.Tools.Word.Documenthost item before you can add a control.Em soluções de Ferramentas do Visual Studio para o Office, controles gerenciados podem ser adicionados somente a itens de host, que atuam como contêineres para os controles.Em nível de aplicativo Adicionar - in de projetos, itens podem ser criadas somente em tempo de execução, usando o método GetVstoObject de host.
Adicione métodos à classe ThisAddIn que pode ser chamado para adicionar ou remover um Button ou RichTextContentControl no documento ativo.Posteriormente neste passo-a-passo, você chamará esses métodos do Click manipuladores de eventos das caixas de Marcar na Faixa de Opções.
Para adicionar e remover controles no documento ativo
Em Gerenciador de Soluções, clique Duplo ThisAddIn.cs ou ThisAddIn.vb para abrir o arquivo no editor de códigos.
Adicione o seguinte código à classe ThisAddIn:Esse código declara Button e objetos de RichTextContentControl que representa os controles que serão adicionados ao documento.
Private button As Microsoft.Office.Tools.Word.Controls.Button = Nothing Private richTextControl As RichTextContentControl = Nothing
private Microsoft.Office.Tools.Word.Controls.Button button = null; private RichTextContentControl richTextControl = null;
Adicionar o seguinte método à classe ThisAddIn.Quando o usuário clica a caixa de Marcar Adicionar botão na Faixa de Opções, este método adiciona um Button à Marcar atual no documento se a caixa de Marcar estiver Selecionado, ou remove o Button se a caixa de Marcar está desmarcada.
Friend Sub ToggleButtonOnDocument() Dim nativeDocument As Word.Document = Globals.ThisAddIn.Application.ActiveDocument Dim vstoDocument As Document = nativeDocument.GetVstoObject() Dim name As String = "MyButton" If Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked Then If Globals.ThisAddIn.Application.Selection IsNot Nothing Then button = vstoDocument.Controls.AddButton( _ Globals.ThisAddIn.Application.Selection.Range, 100, 30, name) End If Else vstoDocument.Controls.Remove(name) End If End Sub
internal void ToggleButtonOnDocument() { Word.Document nativeDocument = Globals.ThisAddIn.Application.ActiveDocument; Document vstoDocument = nativeDocument.GetVstoObject(); string name = "MyButton"; if (Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked) { if (Globals.ThisAddIn.Application.Selection != null) { button = vstoDocument.Controls.AddButton( Globals.ThisAddIn.Application.Selection.Range, 100, 30, name); } } else { vstoDocument.Controls.Remove(name); } }
Adicionar o seguinte método à classe ThisAddIn.Quando o usuário clica na caixa de Marcar Adicionar Controlarar de texto de Rich na faixa de opções, este método adiciona um RichTextContentControl à Marcar atual no documento se a caixa de Marcar estiver Selecionado, ou remove o RichTextContentControl se a caixa de Marcar está desmarcada.
Friend Sub ToggleRichTextControlOnDocument() Dim nativeDocument As Word.Document = Globals.ThisAddIn.Application.ActiveDocument Dim vstoDocument As Document = nativeDocument.GetVstoObject() Dim name As String = "MyRichTextBoxControl" If Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked Then If Globals.ThisAddIn.Application.Selection IsNot Nothing Then richTextControl = vstoDocument.Controls.AddRichTextContentControl( _ Globals.ThisAddIn.Application.Selection.Range, name) End If Else vstoDocument.Controls.Remove(name) End If End Sub
internal void ToggleRichTextControlOnDocument() { Word.Document nativeDocument = Globals.ThisAddIn.Application.ActiveDocument; Document vstoDocument = nativeDocument.GetVstoObject(); string name = "MyRichTextBoxControl"; if (Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked) { if (Globals.ThisAddIn.Application.Selection != null) { richTextControl = vstoDocument.Controls.AddRichTextContentControl( Globals.ThisAddIn.Application.Selection.Range, name); } } else { vstoDocument.Controls.Remove(name); } }
Remover o botão Controlarar quando o documento é salvo
Controles Windows Forms não são persistentes quando o documento é salvo e, em seguida, Fechada.No entanto, um wrapper do ActiveX para cada Controlarar permanece no documento, e a borda desse wrapper pode ser vista por usuários finais quando o documento for reaberto.Há várias maneiras para Apagar os controles Windows Forms criados dinamicamente em Adicionar-ins.Nesta explicação passo a passo, você remover programaticamente o Controlarar de Button quando o documento for salvo.
Para remover o Controlarar de botão quando o documento for salvo
No arquivo de código ThisAddIn.cs ou ThisAddIn.vb, adicione o seguinte método à classe ThisAddIn.Esse método é um manipulador de eventos para o evento DocumentBeforeSave.Se o documento salvo tiver um item de host Document que está associado a ele, o manipulador de eventos obtém o item de host e remove o Controlarar de Button, se ele existir.
Private Sub Application_DocumentBeforeSave(ByVal Doc As Word.Document, _ ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave If Doc.HasVstoObject() Then Dim vstoDocument As Document = Doc.GetVstoObject() If vstoDocument.Controls.Contains(button) Then vstoDocument.Controls.Remove(button) Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = False End If End If End Sub
private void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel) { if (Doc.HasVstoObject()) { Document vstoDocument = Doc.GetVstoObject(); if (vstoDocument.Controls.Contains(button)) { vstoDocument.Controls.Remove(button); Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = false; } } }
Em C#, Adicionar o código a seguir ao manipulador de eventos ThisAddIn_Startup.Esse código é necessário em C# para conectar o manipulador de eventos Application_DocumentBeforeSave com o evento DocumentBeforeSave.
this.Application.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler( Application_DocumentBeforeSave);
Adicionando e removendo controles quando o usuário cliques para as caixas de Marcar na Faixa de Opções
Por fim, modifique os manipuladores de evento Click as caixas de Marcar você Adicionado à Faixa de Opções para adicionar ou remover controles no documento.
Para adicionar ou remover controles quando o usuário clica nas caixas de Marcar na Faixa de Opções
No arquivo de código MyRibbon.cs ou MyRibbon.vb, Substituir gerado addButtonCheckBox_Click os manipuladores de eventos de addRichTextCheckBox_Click com o código a seguir.Esse código redefine esses manipuladores de eventos para chamar os métodos de ToggleButtonOnDocument e ToggleRichTextControlOnDocument que você Adicionado à classe ThisAddIn anteriormente nesta explicação passo a passo.
Private Sub addButtonCheckBox_Click(ByVal sender As System.Object, _ ByVal e As RibbonControlEventArgs) Handles addButtonCheckBox.Click Globals.ThisAddIn.ToggleButtonOnDocument() End Sub Private Sub addRichTextCheckBox_Click(ByVal sender As System.Object, _ ByVal e As RibbonControlEventArgs) Handles addRichTextCheckBox.Click Globals.ThisAddIn.ToggleRichTextControlOnDocument() End Sub
private void addButtonCheckBox_Click(object sender, RibbonControlEventArgs e) { Globals.ThisAddIn.ToggleButtonOnDocument(); } private void addRichTextCheckBox_Click(object sender, RibbonControlEventArgs e) { Globals.ThisAddIn.ToggleRichTextControlOnDocument(); }
Testando a solução
Adicionar controles a um documento selecionando-os da guia Personalizar da Faixa de Opções.Quando você Salvar o documento, o Controlarar de Button é removido.
Para testar a solução.
Pressionarionar F5 para executar seu projeto.
No documento ativo, Pressionarionar ENTER várias vezes para adicionar novos parágrafos vazios ao documento.
Selecionar o primeiro parágrafo.
Clique na guia de Adicionar-ins.
No AAgruparar de Adicionar controles de , clique em Adicionar botão.
Um botão aparece no primeiro parágrafo.
Selecionar o último parágrafo.
No AAgruparar de Adicionar controles de , clique em Add Rich Texto Control.
Um Controlarar de conteúdo de rich Texto é adicionado para o último parágrafo.
Salvar o documento.
O botão será removido de o documento.
Próximas etapas
Você pode saber mais sobre controles no nível de aplicativo Adicionar-ins destes tópicos:
Para obter um exemplo que demonstra como adicionar muitos outros tipos de controles a um documento em tempo de execução e recrie os controles quando o documento é reaberto, consulte O Word Adicionar - no exemplo de controles dinâmicos.
Para um explicação passo a passo que demonstra como adicionar controles a uma planilha usando em um suplemento do nível de aplicativo para o Excel, consulte Demonstra Passo a passo: Adicionar controles a uma planilha em tempo de execução em um projeto de nível de aplicativo.
Consulte também
Tarefas
Como: Adicionar controles de Windows Forms a documentos do Office
Como: Adicionar controles de conteúdo a documentos do Word
O Word Adicionar - no exemplo de controles dinâmicos
Conceitos
Desenvolvimento de Adicionar-in de aplicativo-nível do Word
Adicionar controles a documentos do Office em tempo de execução
Persistência controles dinâmicos em documentos do Office
Date |
History |
Motivo |
---|---|---|
De 2008 de julho |
Tópico adicionado. |
Alteração de recurso do SP1. |