Demonstra Passo a passo: A criação de Menus de atalho para indicadores
Esta explicação passo a passo demonstra como criar menus de atalho para Bookmark controles em uma personalização em nível de documento para Word. Quando um usuário clica com o botão direito do texto em um indicador, um menu de atalho aparece e oferece as opções de usuário para a formatação do texto.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
This walkthrough illustrates the following tasks:
Adicionando texto e os indicadores no documento em um projeto de nível de documento em tempo de design.
Criando um menu de atalho.
Verificando a sobreposição de indicadores.
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 do Visual Studio. |
Pré-requisitos
You need the following components to complete this walkthrough:
-
Uma edição do Visual Studio 2010 que inclua as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.100\).md).
- Microsoft Office Word 2007 ou Word 2010.
Creating the Project
A primeira etapa é criar um projeto de documento do Word no Visual Studio.
Para criar um novo projeto.
Crie um projeto de documento do Word que possui o nome do meu Menu de atalho do indicador. No assistente, selecione criar um novo documento. For more information, see Como: Criar projetos do Office em Visual Studio.
Abre o novo documento do Word no designer de Visual Studio e adiciona o Meu Menu de atalho do indicador de projeto para Solution Explorer.
Adicionando texto e os indicadores no documento
Adicionar algum texto ao documento e adicione dois indicadores sobrepostos.
Para adicionar texto ao documento
Digite o texto a seguir.
Este é um exemplo de criação de um menu de atalho quando o botão direito do mouse no texto em um indicador.
Para adicionar um controle de indicador ao seu documento.
Do Controles do Word guia do Toolbox, arraste um Bookmark o controle para o seu documento.
O Adicionar indicador de controle caixa de diálogo aparece.
Selecione as palavras criar um menu de atalho quando o botão direito do mouse no texto e, em seguida, clique em OK.
bookmark1é adicionado ao documento.
Adicionar outro Bookmark controle das palavras com o botão direito do texto em um indicador.
bookmark2é adicionado ao documento.
Observação As palavras o texto com o botão direito estão em ambos os bookmark1 e bookmark2.
Quando você adiciona um indicador a um documento em tempo de design, um Bookmark controle é criado. Você pode programar vários eventos do indicador. Você pode escrever código na BeforeRightClick eventos do indicador, de modo que quando o usuário clica o texto no indicador, um menu de atalho aparece.
Criando um Menu reduzido
Para criar o menu de atalho
Em Solution Explorer, com o botão direito ThisDocumente em seguida, clique em Exibir código.
Declarar o CommandBar variáveis e uma variável de indicador no nível da classe.
Private commandBar As Office.CommandBar Private selectedBookmark As Microsoft.Office.Tools.Word.Bookmark WithEvents boldText As Office.CommandBarButton WithEvents ItalicText As Office.CommandBarButton
private Office.CommandBar commandBar; private Office.CommandBarButton boldText; private Office.CommandBarButton italicText; private Microsoft.Office.Tools.Word.Bookmark selectedBookmark; const int WordTrue = -1; const int WordFalse = 0;
Adicione um método para criar o menu.
Private Sub AddPopUp() commandBar = Application.CommandBars.Add( _ "FormatText", Office.MsoBarPosition.msoBarPopup, , True) ' Add a button and set the style, caption, icon and tag. boldText = CType(commandBar.Controls.Add(1), Office.CommandBarButton) With boldText .Style = Office.MsoButtonStyle.msoButtonIconAndCaption .Caption = "Bold" .FaceId = 113 .Tag = "0" End With ' Add a button and set the style, caption, icon and tag. ItalicText = CType(commandBar.Controls.Add(1), Office.CommandBarButton) With ItalicText .Style = Office.MsoButtonStyle.msoButtonIconAndCaption .Caption = "Italic" .FaceId = 114 .Tag = "1" End With CType(Me.AttachedTemplate, Microsoft.Office.Interop.Word.Template).Saved = True End Sub
private void AddPopUp() { commandBar = Application.CommandBars.Add("FormatText", Office.MsoBarPosition.msoBarPopup, missing, true); // Add a button and set the style, caption, icon and tag. boldText = (Office.CommandBarButton)commandBar.Controls.Add( 1, missing, missing, missing, missing); boldText.Style = Office.MsoButtonStyle.msoButtonCaption; boldText.Caption = "Bold"; boldText.FaceId = 113; boldText.Tag = "0"; // Add a button and set the style, caption, icon and tag. italicText = (Office.CommandBarButton)commandBar.Controls.Add( 1, missing, missing, missing, missing); italicText.Style = Office.MsoButtonStyle.msoButtonCaption; italicText.Caption = "Italic"; italicText.FaceId = 114; italicText.Tag = "1"; // Handle the click events with the ButtonClick procedure. boldText.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(ButtonClick); italicText.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(ButtonClick); ((Microsoft.Office.Interop.Word.Template)this.AttachedTemplate).Saved = true; }
Chame AddPopup da Startup o evento de ThisDocument.
Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles Me.Startup AddPopUp() End Sub
private void ThisDocument_Startup(object sender, System.EventArgs e) { AddPopUp(); }
Para formatar o texto contido no indicador
Adicionar um ButtonClick o manipulador de eventos para aplicar a formatação do marcador.
Private Sub ButtonClick(ByVal ctrl As Office.CommandBarButton, _ ByRef Cancel As Boolean) Handles boldText.Click, ItalicText.Click Select Case ctrl.Caption Case "Bold" selectedBookmark.Bold = Not selectedBookmark.Bold Case "Italic" selectedBookmark.Italic = Not selectedBookmark.Italic End Select Me.ActiveWindow.SetFocus() End Sub
private void ButtonClick(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault) { if (Ctrl.Caption == "Bold") { if (selectedBookmark.Bold == WordTrue) { selectedBookmark.Bold = WordFalse; } else { selectedBookmark.Bold = WordTrue; } } else if (Ctrl.Caption == "Italic") { if (selectedBookmark.Italic == WordTrue) { selectedBookmark.Italic = WordFalse; } else { selectedBookmark.Italic = WordTrue; } } }
Adicionar um showPopupMenu o manipulador de eventos para manipular o BeforeRightClick o evento de ambos os marcadores.
Observação Você deve escrever código para manipular o caso onde os marcadores se sobrepõem. Se você não fizer isso, por padrão, o código será chamado para todos os indicadores da seleção.
Private Sub showPopupMenu(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 popup. If DirectCast(sender, Microsoft.Office.Tools.Word.Bookmark).Start = _ startPosition Then selectedBookmark = DirectCast(sender, Microsoft.Office.Tools.Word.Bookmark) commandBar.ShowPopup() e.Cancel = True End If End Sub
private void ShowPopupMenu(object sender, Microsoft.Office.Tools.Word.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 the popup. if (((Microsoft.Office.Tools.Word.Bookmark)sender).Start == startPosition) { selectedBookmark = (Microsoft.Office.Tools.Word.Bookmark)sender; commandBar.ShowPopup(missing, missing); e.Cancel = true; } }
C#, você deve adicionar manipuladores de eventos para os controles do indicador para o Startup de evento. Para obter informações sobre como criar manipuladores de eventos, consulte Como: Criar manipuladores de eventos em projetos do Office.
this.bookmark1.BeforeRightClick += new Microsoft.Office.Tools.Word.ClickEventHandler(ShowPopupMenu); this.bookmark2.BeforeRightClick += new Microsoft.Office.Tools.Word.ClickEventHandler(ShowPopupMenu);
Testing the Application
Teste seu documento para verificar os itens de menu em negrito e itálico aparecem no menu de atalho quando o botão direito do mouse o texto em um indicador e o texto está formatado corretamente.
Para testar seu documento.
Pressione F5 para executar seu projeto.
Clique com o botão direito no primeiro indicador e, em seguida, clique em negrito.
Verifique se todo o texto em bookmark1 é formatado como negrito.
Clique com o botão direito do texto onde os marcadores se sobrepõem, e então clique em itálico.
Verifique se todo o texto em bookmark2 é itálico e apenas a parte do texto em bookmark1 que sobrepõe bookmark2 está em itálico.
Próximas etapas
Here are some tasks that might come next:
Escreva código para responder a eventos de controles de host no Excel. For more information, see Demonstra Passo a passo: Programação de eventos de um controle NamedRange.
Use a caixa de seleção para alterar a formatação em um indicador. For more information, see Demonstra Passo a passo: Alterar a formatação do documento usando os controles CheckBox.
Consulte também
Conceitos
O Word Usando Explicações Passo a passo
Automatizar o Word usando o Extended objetos
Parâmetros opcionais em soluções do Office