Compartilhar via


Como: adiciona um Item de Menu de atalho para projetos do SharePoint

Você pode adicionar um item de menu de atalho para qualquer projeto do SharePoint.O item de menu é exibido quando um usuário clica em um nó do projeto Solution Explorer.

Os seguintes passos consideram que você já tenha criado uma extensão de projeto.Para obter mais informações, consulte Como: criar uma extensão de projeto do SharePoint.

Para adicionar um item de menu de atalho para projetos do SharePoint

  1. No Initialize método do seu ISharePointProjectExtension implementação, alça a ProjectMenuItemsRequested evento do projectService parâmetro.

  2. No seu manipulador de eventos para o ProjectMenuItemsRequested evento, adicionar um novo IMenuItem o objeto para o ActionMenuItems ou AddMenuItems a coleção do parâmetro de argumentos de evento.

  3. No Click o manipulador de eventos para o novo IMenuItem de objeto, realizar as tarefas que você deseja executar quando um usuário clica o item de menu de atalho.

Exemplo

O exemplo de código a seguir demonstra como adicionar um item de menu de atalho para nós de projeto do SharePoint na Solution Explorer.Quando o usuário clica com o botão direito um nó do projeto e clica o Escrever a mensagem na janela Saída item de menu, Visual Studio exibe uma mensagem na saída janela.Este exemplo usa o serviço de projeto do SharePoint para exibir a mensagem.Para obter mais informações, consulte Usando o serviço de projeto do SharePoint.

Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint

Namespace Contoso.Examples

    <Export(GetType(ISharePointProjectExtension))> _
    Friend Class ExampleProjectExtensionWithMenu
        Implements ISharePointProjectExtension

        Private Sub Initialize(ByVal projectService As ISharePointProjectService) _
            Implements ISharePointProjectExtension.Initialize
            AddHandler projectService.ProjectMenuItemsRequested, AddressOf ProjectMenuItemsRequested
        End Sub

        Private Sub ProjectMenuItemsRequested(ByVal Sender As Object,
            ByVal e As SharePointProjectMenuItemsRequestedEventArgs)
            Dim menuItem As IMenuItem = e.ActionMenuItems.Add("Write Message to Output Window")
            AddHandler menuItem.Click, AddressOf MenuItem_Click
        End Sub

        Private Sub MenuItem_Click(ByVal Sender As Object, ByVal e As MenuItemEventArgs)
            Dim project As ISharePointProject = TryCast(e.Owner, ISharePointProject)
            If project IsNot Nothing Then
                project.ProjectService.Logger.WriteLine(
                    String.Format("This message was written from a shortcut menu for the {0} project.", project.Name),
                    LogCategory.Status)
            End If
        End Sub
    End Class
End Namespace
using System;
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.SharePoint;

namespace Contoso.Examples
{
    [Export(typeof(ISharePointProjectExtension))]
    internal class ExampleProjectExtensionWithMenu : ISharePointProjectExtension
    {
        public void Initialize(ISharePointProjectService projectService)
        {
            projectService.ProjectMenuItemsRequested += projectService_ProjectMenuItemsRequested;
        }

        void projectService_ProjectMenuItemsRequested(object sender, 
            SharePointProjectMenuItemsRequestedEventArgs e)
        {
            IMenuItem menuItem = e.ActionMenuItems.Add("Write Message to Output Window");
            menuItem.Click += MenuItemExtension_Click;
        }

        void MenuItemExtension_Click(object sender, MenuItemEventArgs e)
        {
            ISharePointProject project = e.Owner as ISharePointProject;
            if (project != null)
            {
                project.ProjectService.Logger.WriteLine(
                    String.Format("This message was written from a shortcut menu for the {0} project.", project.Name),
                    LogCategory.Status);
            }
        }
    }
}

Compilando o código

Este exemplo requer um projeto de biblioteca de classe com referências aos assemblies seguintes:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Implantação da extensão

Para implantar a extensão, criar um Visual Studio (VSIX) da extensão do pacote para o assembly e outros arquivos que você deseja distribuir com a extensão.Para obter mais informações, consulte Implantação de extensões para as ferramentas de SharePoint no Visual Studio.

Consulte também

Conceitos

Estendendo os projetos do SharePoint

Como: criar uma extensão de projeto do SharePoint

Como: adicionar uma propriedade para projetos do SharePoint