Partilhar via


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

  • Projetos de nível de aplicativo

Versão do Microsoft Office

  • Word 2007

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

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

  1. No menu Project, clique em Add New Item.

  2. No Adicionar Novo Item caixa de diálogo, Selecionar Da Faixa de Opções (Designer Visual).

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

  4. No Designer da Faixa de Opções, clique no grupo de De grupo1.

  5. Na janela Properties, Alterar Rótulo propriedadeGrupo1 para adicionar controles.

  6. Na guia Controles da Faixa de Opções do Officede De caixa de ferramentas, arraste um controle do Caixa de Seleção até Grupo1.

  7. Clique em CheckBox1 para Selecionar-lo.

  8. Na janela Properties, Alterar as propriedades a seguir.

    Propriedade

    Value (Valor)

    Nome

    addButtonComboBox

    Rótulo

    Adicionar botão

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

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

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

  1. Em Gerenciador de Soluções, clique Duplo ThisAddIn.cs ou ThisAddIn.vb para abrir o arquivo no editor de códigos.

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

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

  1. Pressionarionar F5 para executar seu projeto.

  2. No documento ativo, Pressionarionar ENTER várias vezes para adicionar novos parágrafos vazios ao documento.

  3. Selecionar o primeiro parágrafo.

  4. Clique na guia de Adicionar-ins.

  5. No AAgruparar de Adicionar controles de , clique em Adicionar botão.

    Um botão aparece no primeiro parágrafo.

  6. Selecionar o último parágrafo.

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

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

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

Estendendo os documentos do Word e Excel pastas de trabalho no nível de aplicativo Adicionar-ins em tempo de execução

Date

History

Motivo

De 2008 de julho

Tópico adicionado.

Alteração de recurso do SP1.