Passo a passo: Criando Menus de atalho para indicadores
Essa explicação passo a passo demonstra como criar menus de atalho para controles de Bookmark em um nível para personalização da palavra.Quando um usuário clicar com o botão direito do texto em um marcador, um menu de atalho aparece e fornece opções de usuário para formatar o texto.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para Word 2013 e Word 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 o projeto.
Adicionando texto e marcadores para o documento.
Adicionando comandos para um menu de atalho.
Para formatar o texto no indexador.
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 o projeto
A primeira etapa é criar um projeto do documento do word no Visual Studio.
para criar um novo projeto
Crie um projeto do documento do word que tem o nome meu menu de atalho do indexador.Em o assistente, selecione Criar um novo documento.Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.
O Visual Studio abre o novo documento do word no designer e adiciona o projeto de Meu menu de atalho do indexador a Gerenciador de Soluções.
Adicionando texto e marcadores para o documento
Adicione um texto a seu documento e então adicione dois indicadores sobrepostos.
Para adicionar texto a seu documento
Em o documento que aparece no designer do projeto, digite o seguinte texto.
Este é um exemplo de como criar um menu de atalho quando você clica com o botão direito do texto em um indexador.
Para adicionar um controle do indexador no seu documento
Em Caixa de Ferramentas, na guia de Controles do word , arraste um controle de Bookmark no seu documento.
a caixa de diálogo de Adicione o controle do indexador aparece.
Selecione a palavra “que criam um menu de atalho quando você clica com o botão direito do mouse no texto”, clique em OK.
bookmark1 é adicionado ao documento.
Adicione outro controle de Bookmark a palavra “clique com o botão direito do texto em um marcador”.
bookmark2 é adicionado ao documento.
Observação A palavra “clique com o botão direito do mouse no texto” estão em bookmark1 e em bookmark2.
Quando você adiciona um marcador para um documento em tempo de design, um controle de Bookmark é criado.Você pode programar com vários eventos do indexador.Você pode escrever código para o evento de BeforeRightClick do indexador de modo que quando o usuário clica com o botão direito do mouse o texto no marcador, um menu de atalho aparece.
Adicionando comandos para um menu de atalho
Adicionar botões ao menu de atalho que aparece quando você clica com o botão direito do mouse no documento.
Para adicionar comandos para um menu de atalho
adicionar um item de fita XML ao projeto.Para obter mais informações, consulte Como: começar a personalizar a faixa de opções..
Em Gerenciador de Soluções, em ThisDocument.cs selecione ou em ThisDocument.vb.
Em a barra de menu, escolha Modo de Visualização, Código.
O arquivo de classe ThisDocument abre na editor de códigos.
Adicione o seguinte código à classe de ThisDocument .Esse código substitui o método de CreateRibbonExtensibilityObject e retorna a classe XML de fita para o aplicativo do Office.
Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility Return New Ribbon1() End Function
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() { return new Ribbon1(); }
Em Gerenciador de Soluções, selecione o arquivo XML e fita.Por padrão, o arquivo XML e fita é chamado Ribbon1.xml.
Em a barra de menu, escolha Modo de Visualização, Código.
O arquivo XML de fita abre na editor de códigos.
Em o editor de códigos de, substitua o conteúdo do arquivo XML e fita com o código a seguir.
<?xml version="1.0" encoding="UTF-8"?> <customUI xmlns="https://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load"> <contextMenus> <contextMenu idMso="ContextMenuText"> <button id="BoldButton" label="Bold" onAction="ButtonClick" getVisible="GetVisible" /> <button id="ItalicButton" label="Italic" onAction="ButtonClick" getVisible="GetVisible"/> </contextMenu> </contextMenus> </customUI>
Este código adiciona dois botões para o menu de atalho que aparece quando você clica com o botão direito do mouse no documento.
Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument, clique em Exibir Código.
Declare as variáveis e uma variável do indexador a nível de classe.
Public selectedBookmark As Microsoft.Office.Tools.Word.Bookmark Public ShowBoldButton As String = False Public ShowItalicButton As String = False Public WordTrue As Integer = -1 Public WordFalse As Integer = 0
public Microsoft.Office.Tools.Word.Bookmark selectedBookmark; public bool showBoldButton = false; public bool showItalicButton = false; public int WordTrue = -1; public int WordFalse = 0;
Em Gerenciador de Soluções, selecione o arquivo de código de fita.Por padrão, o arquivo de código de fita é chamado Ribbon1.cs ou Ribbon1.vb.
Em a barra de menu, escolha Modo de Visualização, Código.
O arquivo de código de fita abre na editor de códigos.
Em o arquivo de código de fita, adicione o seguinte método.Este é um método callback para os dois botões que você adicionou ao menu de atalho do documento.Este método determina se esses botões aparecem no menu de atalho.Os botões em negrito e itálico aparecem somente se você clicar com o botão direito do mouse no texto dentro do indexador.
Public Function GetVisible(ByVal control As Office.IRibbonControl) As Boolean If control.Id = "BoldButton" Then If Globals.ThisDocument.ShowBoldButton = True Then Globals.ThisDocument.ShowBoldButton = False Return True Else Return False End If ElseIf control.Id = "ItalicButton" Then If Globals.ThisDocument.ShowItalicButton = True Then Globals.ThisDocument.ShowItalicButton = False Return True Else Return False End If Else Return False End If End Function
public bool GetVisible(Office.IRibbonControl control) { if (control.Id == "BoldButton") { if (Globals.ThisDocument.showBoldButton == true) { Globals.ThisDocument.showBoldButton = false; return true; } else { return false; } } else if (control.Id == "ItalicButton") { if (Globals.ThisDocument.showItalicButton == true) { Globals.ThisDocument.showItalicButton = false; return true; } else { return false; } } else { return false; } }
Para formatar o texto no indexador
Em o arquivo de código de fita, adicione um manipulador de eventos de ButtonClick para aplicar formatação ao indexador.
Public Sub ButtonClick(ByVal control As Office.IRibbonControl) If control.Id = "BoldButton" Then If Globals.ThisDocument.selectedBookmark.Bold = _ Globals.ThisDocument.WordTrue Then Globals.ThisDocument.selectedBookmark.Bold = _ Globals.ThisDocument.WordFalse Else Globals.ThisDocument.selectedBookmark.Bold = _ Globals.ThisDocument.WordTrue End If ElseIf control.Id = "ItalicButton" Then If Globals.ThisDocument.selectedBookmark.Italic = _ Globals.ThisDocument.WordTrue Then Globals.ThisDocument.selectedBookmark.Italic = _ Globals.ThisDocument.WordFalse Else Globals.ThisDocument.selectedBookmark.Italic = _ Globals.ThisDocument.WordTrue End If End If End Sub
public void ButtonClick(Office.IRibbonControl control) { if (control.Id == "BoldButton") { if (Globals.ThisDocument.selectedBookmark.Bold == Globals.ThisDocument.WordTrue) { Globals.ThisDocument.selectedBookmark.Bold = Globals.ThisDocument.WordFalse; } else { Globals.ThisDocument.selectedBookmark.Bold = Globals.ThisDocument.WordTrue; } } else if (control.Id == "ItalicButton") { if (Globals.ThisDocument.selectedBookmark.Italic == Globals.ThisDocument.WordTrue) { Globals.ThisDocument.selectedBookmark.Italic = Globals.ThisDocument.WordFalse; } else { Globals.ThisDocument.selectedBookmark.Italic = Globals.ThisDocument.WordTrue; } } }
Gerenciador de Soluções, ThisDocument.cs selecione ou ThisDocument.vb.
Em a barra de menu, escolha Modo de Visualização, Código.
O arquivo de classe ThisDocument abre na editor de códigos.
Adicione o seguinte código à classe de ThisDocument .
Private Sub Bookmark_BeforeRightClick(ByVal sender As Object, ByVal e _ As Microsoft.Office.Tools.Word.ClickEventArgs) _ Handles Bookmark1.BeforeRightClick, Bookmark2.BeforeRightClick Dim startPosition As Integer = 0 Dim i As Integer ' If bookmarks overlap, get bookmark closest to cursor. For i = 1 To e.Selection.Bookmarks.Count If e.Selection.Bookmarks(i).Start > startPosition Then startPosition = e.Selection.Bookmarks(i).Start End If Next ' If closest bookmark is the sender, show the shortcut menu options. If DirectCast(sender, Microsoft.Office.Tools.Word.Bookmark).Start = _ startPosition Then selectedBookmark = DirectCast(sender, Microsoft.Office.Tools.Word.Bookmark) ShowBoldButton = True ShowItalicButton = True End If End Sub
void bookmark_BeforeRightClick(object sender, ClickEventArgs e) { int startPosition = 0; // If bookmarks overlap, get bookmark closest to cursor. for (int i = 1; i <= e.Selection.Bookmarks.Count; i++) { if (e.Selection.Bookmarks[i].Start > startPosition) { startPosition = e.Selection.Bookmarks[i].Start; } } // If closest bookmark is the sender, show shortcut menu options. if (((Microsoft.Office.Tools.Word.Bookmark)sender).Start == startPosition) { selectedBookmark = (Microsoft.Office.Tools.Word.Bookmark)sender; showBoldButton = true; showItalicButton = true; } }
Observação Você deve escrever código para manipular o caso em que os indicadores sobrepostos.Se você não fizer isso, por padrão, o código será chamado para todos os indicadores na seleção.
Em C#, você deve adicionar manipuladores de eventos para os controles do indexador ao evento de Startup .Para obter informações sobre como criar manipuladores de eventos, consulte Como: criar manipuladores de eventos em projetos do Office.
private void ThisDocument_Startup(object sender, System.EventArgs e) { this.bookmark1.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick); this.bookmark2.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick); }
Testando o aplicativo
Teste seu documento para verificar se os itens de menu em negrito e itálico aparecerão no menu de atalho quando você clica com o botão direito do texto em um indexador e que o texto é formatado corretamente.
para testar seu documento
Pressione F5 para executar o seu projeto.
Clique com o botão direito do mouse no primeiro marcador, e clique em Negrito.
Verifique se qualquer texto em bookmark1 está formatado com negrito.
Clique com o botão direito do mouse no texto onde os indicadores sobrepostos, clique em Itálico.
Verifique se qualquer texto em bookmark2 é itálico e, somente a parte do texto em bookmark1 se sobrepõem bookmark2 é itálico.
Próximas etapas
Aqui estão algumas tarefas que podem vie em seguida:
Escreva o código para responder a eventos de controles host do excel.Para obter mais informações, consulte Passo a passo: Programação contra eventos de um controle NamedRange.
Use uma caixa de seleção para alterar a formatação em um indexador.Para obter mais informações, consulte Passo a passo: Alterando a formatação do documento usando os controles CheckBox.
Consulte também
Conceitos
Word usando explicações passo a passo
Automação do Word utilizando o Extended objetos
Parâmetros opcionais em soluções do Office