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çãoObservaçã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

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

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

  3. Adicione outro controle de Bookmark a palavra “clique com o botão direito do texto em um marcador”.

    bookmark2 é adicionado ao documento.

    ObservaçãoObservaçã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

  1. adicionar um item de fita XML ao projeto.Para obter mais informações, consulte Como: começar a personalizar a faixa de opções..

  2. Em Gerenciador de Soluções, em ThisDocument.cs selecione ou em ThisDocument.vb.

  3. Em a barra de menu, escolha Modo de Visualização, Código.

    O arquivo de classe ThisDocument abre na editor de códigos.

  4. 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();
    }
    
  5. Em Gerenciador de Soluções, selecione o arquivo XML e fita.Por padrão, o arquivo XML e fita é chamado Ribbon1.xml.

  6. Em a barra de menu, escolha Modo de Visualização, Código.

    O arquivo XML de fita abre na editor de códigos.

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

  8. Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument, clique em Exibir Código.

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

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

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

  1. 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;
            }
        }
    
    }
    
  2. Gerenciador de Soluções, ThisDocument.cs selecione ou ThisDocument.vb.

  3. Em a barra de menu, escolha Modo de Visualização, Código.

    O arquivo de classe ThisDocument abre na editor de códigos.

  4. 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çãoObservaçã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.

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

  1. Pressione F5 para executar o seu projeto.

  2. Clique com o botão direito do mouse no primeiro marcador, e clique em Negrito.

  3. Verifique se qualquer texto em bookmark1 está formatado com negrito.

  4. Clique com o botão direito do mouse no texto onde os indicadores sobrepostos, clique em Itálico.

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

Consulte também

Conceitos

Word usando explicações passo a passo

Automação do Word utilizando o Extended objetos

Indicador de controle

Parâmetros opcionais em soluções do Office

Outros recursos

Personalização de interface do usuário do Office