Passo a passo: Adicionar controles a um documento no runtime em um suplemento em nível de aplicativo
Você pode adicionar controles para alguns documento aberto Microsoft Office Word usando um suplemento ao aplicativo.Essa explicação passo a passo demonstra como usar a fita para permitir que usuários adicionem Button ou RichTextContentControl em um documento.
Se aplica: as informações contidas em este tópico aplica projetos no nível para a palavra 2010.Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Essa explicação passo a passo mostra as seguintes tarefas:
Criando um novo projeto do suplemento a palavra.
Fornecendo uma interface de usuário (UI) para adicionar controles ao documento.
adicionando controles ao documento em tempo de execução.
Removendo controles de documento.
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 de Visual Studio. |
Pré-requisitos
Para completar este passo-a-passo, são necessários os seguintes componentes:
-
Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
- Word 2013 ou Word 2010.
Criando um novo projeto do suplemento a palavra
Inicie criando um projeto do suplemento a palavra.
Para criar um novo projeto do suplemento a palavra
Crie um projeto do suplemento ao nível para palavra com o nome WordDynamicControls.Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.
Adicione uma referência ao conjunto de Microsoft.Office.Tools.Word.v4.0.Utilities.dll .Essa referência é necessária para adicionar programaticamente posteriormente um controle de formulários do windows para o documento em essa explicação passo a passo.
Fornecendo interface do usuário para adicionar controles a um documento
Adicione um guia personalizado à fita em palavras.Os usuários podem selecionar caixas de seleção na guia para adicionar controles a um documento.
Para fornecer uma interface de usuário para adicionar controles a um documento
No menu Project, clique em Add New Item.
Em a caixa de diálogo de Adicionar novo item , **fita (designer visual)**selecione.
Altere o nome do novo fita a MyRibbon, e clique Adicionar.
O arquivo de MyRibbon.cs ou de MyRibbon.vb abre no designer de fita e exibe uma guia e um grupo padrão.
Em o designer de fita, clique no grupo de group1 .
Em a janela de Propriedades , altere a propriedade de Rótulo para group1 para adicionar controles.
De a guia de Controles de fita do Office de Caixa de Ferramentas, arraste um controle de CheckBox em group1.
Clique CheckBox1 para selecioná-lo.
Em a janela de Propriedades , altere as propriedades a seguir.
Propriedade
Valor
Nome
addButtonCheckBox
Label
Adicione o botão
Adicione uma segunda caixa de seleção a group1e em seguida, altere as seguintes propriedades.
Propriedade
Valor
Nome
addRichTextCheckBox
Label
Adicione o controle de texto rico
Em o designer de fita, clique duas vezes em adicione o botão.
O manipulador de eventos de Click da caixa de seleção do botão adicionar abre na editor de códigos.
Retornar ao designer de fita, clique duas vezes no controle adicionam rica de texto.
O manipulador de eventos de Click da caixa de seleção rica do controle de texto adicionar abre na editor de códigos.
Posteriormente em esta explicação passo a passo, você adicionará código para esses manipuladores de eventos para adicionar e remover controles no documento ativo.
Adicionando e removendo controles no documento ativo
Em o código do suplemento, você deve converter o documento ativo em um item de host de Microsoft.Office.Tools.Word.Document antes de adicionar um controle.Em soluções do Office, os controles gerenciados podem ser adicionados somente para itens de host, que atuam como recipientes para os controles.Em projetos do suplemento ao aplicativo, os itens host podem ser criados em tempo de execução usando o método de GetVstoObject .
Adicionar métodos à classe de ThisAddIn que pode ser chamado para adicionar ou remover Button ou RichTextContentControl no documento ativo.Posteriormente em esta explicação passo a passo, você irá chamar esses métodos de manipuladores de eventos de Click das caixas de seleção em fita.
Para adicionar e remover controles no documento ativo
Em Gerenciador de Soluções, clique duas vezes 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 representam 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;
Adicione o seguinte método à classe de ThisAddIn .Quando o usuário clica na caixa de seleção do botão adicionar em fita, esse método adiciona Button a seleção atual no documento se a caixa de seleção está selecionada, ou remove Button se a caixa de seleção está desmarcada.
Friend Sub ToggleButtonOnDocument() Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) Dim name As String = "MyButton" If Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked Then Dim selection = Me.Application.Selection If selection IsNot Nothing AndAlso selection.Range IsNot Nothing Then button = vstoDocument.Controls.AddButton( _ selection.Range, 100, 30, name) End If Else vstoDocument.Controls.Remove(name) End If End Sub
internal void ToggleButtonOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyButton"; if (Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { button = vstoDocument.Controls.AddButton( selection.Range, 100, 30, name); } } else { vstoDocument.Controls.Remove(name); } }
Adicione o seguinte método à classe de ThisAddIn .Quando o usuário clica na caixa de seleção rica do controle de texto adicionar em fita, esse método adiciona RichTextContentControl a seleção atual no documento se a caixa de seleção está selecionada, ou remove RichTextContentControl se a caixa de seleção está desmarcada.
Friend Sub ToggleRichTextControlOnDocument() Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) Dim name As String = "MyRichTextBoxControl" If Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked Then Dim selection = Me.Application.Selection If selection IsNot Nothing AndAlso selection.Range IsNot Nothing Then richTextControl = vstoDocument.Controls.AddRichTextContentControl( _ selection.Range, name) End If Else vstoDocument.Controls.Remove(name) End If End Sub
internal void ToggleRichTextControlOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyRichTextBoxControl"; if (Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { richTextControl = vstoDocument.Controls.AddRichTextContentControl( selection.Range, name); } } else { vstoDocument.Controls.Remove(name); } }
Removendo o controle botão quando o documento é salvo
Os controles de formulários do windows não são persistidos quando o documento é salvo e fechado em.Em o entanto, um wrapper ActiveX para cada controle permanecerá no documento, e a borda de esse wrapper pode ser vista por usuários finais quando o documento é reaberta.Há várias maneiras para limpar controles de formulários do windows criados dinamicamente em suplementos.Em essa explicação passo a passo, você remove o controle por meio de Button quando o documento é salvo.
Para remover o controle botão quando o documento é salvo
O arquivo no código de ThisAddIn.cs ou de ThisAddIn.vb, adicione o seguinte método à classe de ThisAddIn .este método é um manipulador de eventos para o evento de DocumentBeforeSave .Se o documento salvo tem um item de host de Document que está associado a ele, o manipulador de eventos obtém o item host e remove o controle de Button , se existir.
Private Sub Application_DocumentBeforeSave(ByVal Doc As Word.Document, _ ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave Dim isExtended As Boolean = Globals.Factory.HasVstoObject(Doc) If isExtended Then Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Doc) 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) { bool isExtended = Globals.Factory.HasVstoObject(Doc); if (isExtended) { Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(Doc); if (vstoDocument.Controls.Contains(button)) { vstoDocument.Controls.Remove(button); Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = false; } } }
Em C#, adicione o seguinte código ao manipulador de eventos de ThisAddIn_Startup .Esse código é necessário em C# para conectar o manipulador de eventos de Application_DocumentBeforeSave com o evento de DocumentBeforeSave .
this.Application.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler( Application_DocumentBeforeSave);
Adicionando e removendo controles quando o usuário clica nas caixas de seleção em fita
Finalmente, modifique os manipuladores de eventos de Click das caixas de seleção que você adicionou à fita para adicionar ou remover controles no documento.
Para adicionar ou remover controles quando o usuário clica nas caixas de seleção em fita
O arquivo no código de MyRibbon.cs ou de MyRibbon.vb, substitui addButtonCheckBox_Click e manipuladores de eventos gerados de addRichTextCheckBox_Click com o código a seguir.Esse código redefinir esses manipuladores de eventos para chamar os métodos de ToggleButtonOnDocument e de ToggleRichTextControlOnDocument que você adicionou à classe ThisAddIn anteriormente em este 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 a partir da guia personalizado em fita.Quando você salvar o documento, o controle de Button é removido.
para testar a solução.
Pressione F5 para executar o seu projeto.
Em o documento ativo, pressione a tecla ENTER algumas vezes para adicionar novos parágrafos vazios para o documento.
Selecione o primeiro parágrafo.
Clique na guia de Suplementos .
Em o grupo de adicionar controles , clique Adicionar Botão.
Um botão aparece no primeiro parágrafo.
Selecione o parágrafo o último.
Em o grupo de adicionar controles , clique Adicione o controle de texto rico.
Um controle rica do conteúdo de texto é adicionado ao parágrafo o último.
Salve o documento.
O botão é removido do documento.
Próximas etapas
Você pode aprender mais sobre controles nos suplementos o nível de esses tópicos:
Para um exemplo que demonstra como adicionar em tempo de execução muitos outros tipos de controles a um documento e recriar controles quando o documento é reaberta, consulte o suplemento a palavra o exemplo de controles dinâmicos em Passo a passo e amostras de desenvolvimento do office.
Para uma explicação passo a passo que demonstra como adicionar controles a uma planilha usando um suplemento ao nível para o excel, considere Passo a passo: Adicionando controles a uma planilha em tempo de execução em um projeto de nível de aplicativo.
Consulte também
Tarefas
Como: adicionar controles do Windows Forms a documentos do Office
Como: adicionar controles de conteúdo para documentos do Word
Conceitos
Adicionar controles a documentos do Office em tempo de execução
Persisting controles dinâmicos em documentos do Office