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

Você pode adicionar um item de menu de atalho para o 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 de seu ISharePointProjectExtension implementação, a alça a ProjectMenuItemsRequested evento da projectService parâmetro.

  2. No seu manipulador de eventos para o ProjectMenuItemsRequested evento, adicione uma nova IMenuItem o objeto para o ActionMenuItems ou AddMenuItems coleção do parâmetro de argumentos de evento.

  3. No Click o manipulador de eventos para o novo IMenuItem o 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 o nó do projeto e clica o Mensagem de gravação para a janela de saída item de menu, Visual Studio exibe uma mensagem no 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 pacote de extensão (VSIX) para o assembly e outros arquivos que você deseja distribuir com extensão. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.

Consulte também

Tarefas

Como: Criar uma extensão de projeto do SharePoint

Outros recursos

Estendendo os projetos do SharePoint

Como: Adicionar uma propriedade para projetos do SharePoint