Como: adicionar um item de menu de atalho para uma extensão de item de projeto do SharePointHow to: Add a shortcut menu item to a SharePoint project item extension

Você pode adicionar um item de menu de atalho a um item de projeto do SharePoint existente, usando uma extensão de item de projeto.You can add a shortcut menu item to an existing SharePoint project item by using a project item extension. O item de menu é exibido quando um usuário clica o item de projeto no Gerenciador de soluções.The menu item appears when a user right-clicks the project item in Solution Explorer.

As etapas a seguir pressupõem que você já tenha criado uma extensão de item de projeto.The following steps assume that you have already created a project item extension. Para obter mais informações, consulte como: criar uma extensão de item de projeto do SharePoint.For more information, see How to: Create a SharePoint project item extension.

Para adicionar um item de menu de atalho em uma extensão de item de projetoTo add a shortcut menu item in a project item extension

  1. No Initialize método de seu ISharePointProjectItemTypeExtension implementação, o identificador a ProjectItemMenuItemsRequested evento do projectItemType parâmetro.In the Initialize method of your ISharePointProjectItemTypeExtension implementation, handle the ProjectItemMenuItemsRequested event of the projectItemType parameter.

  2. No manipulador de eventos para o ProjectItemMenuItemsRequested evento, adicione um novo IMenuItem do objeto para o ViewMenuItems ou AddMenuItems coleção do parâmetro de argumentos de evento.In your event handler for the ProjectItemMenuItemsRequested event, add a new IMenuItem object to the ViewMenuItems or AddMenuItems collection of the event arguments parameter.

  3. No Click manipulador de eventos para o novo IMenuItem do objeto, execute as tarefas que você deseja executar quando um usuário clica em seu item de menu de atalho.In the Click event handler for the new IMenuItem object, perform the tasks you want to execute when a user clicks your shortcut menu item.

ExemploExample

O exemplo de código a seguir demonstra como adicionar um item de menu de atalho para o item de projeto do receptor de eventos.The following code example demonstrates how to add a shortcut menu item to the Event Receiver project item. Quando o usuário clica o item de projeto no Gerenciador de soluções e clica o mensagem de gravação para a janela de saída item de menu, o Visual Studio exibe uma mensagem no saídajanela.When the user right-clicks the project item in Solution Explorer and clicks the Write Message to Output Window menu item, Visual Studio displays a message in the Output window.

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

Namespace Contoso.Examples.ProjectItemExtensionWithMenu

    <Export(GetType(ISharePointProjectItemTypeExtension))> _
    <SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")> _
    Friend Class ExampleProjectItemExtensionWithMenu
        Implements ISharePointProjectItemTypeExtension

        Private Sub Initialize(ByVal projectItemType As ISharePointProjectItemType) _
            Implements ISharePointProjectItemTypeExtension.Initialize
            AddHandler projectItemType.ProjectItemMenuItemsRequested, AddressOf ProjectItemMenuItemsRequested
        End Sub

        Private Sub ProjectItemMenuItemsRequested(ByVal Sender As Object,
            ByVal e As SharePointProjectItemMenuItemsRequestedEventArgs)
            Dim menuItem As IMenuItem = e.ViewMenuItems.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 projectItem As ISharePointProjectItem = CType(e.Owner, ISharePointProjectItem)
            projectItem.Project.ProjectService.Logger.WriteLine(
                String.Format("This message was written from a shortcut menu for {0}.", projectItem.Name),
                LogCategory.Status)
        End Sub
    End Class
End Namespace
using System;
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.SharePoint;

namespace Contoso.Examples.ProjectItemExtensionWithMenu
{
    [Export(typeof(ISharePointProjectItemTypeExtension))]
    [SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.EventHandler")]
    internal class ExampleProjectItemExtensionWithMenu : ISharePointProjectItemTypeExtension
    {
        public void Initialize(ISharePointProjectItemType projectItemType)
        {
            projectItemType.ProjectItemMenuItemsRequested += projectItemType_ProjectItemMenuItemsRequested;
        }

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

        void MenuItemExtension_Click(object sender, MenuItemEventArgs e)
        {
            ISharePointProjectItem projectItem = (ISharePointProjectItem)e.Owner;
            projectItem.Project.ProjectService.Logger.WriteLine(
                String.Format("This message was written from a shortcut menu for {0}.", projectItem.Name), 
                LogCategory.Status);
        }
    }
}

Este exemplo usa o serviço de projeto do SharePoint para gravar a mensagem para o saída janela.This example uses the SharePoint project service to write the message to the Output window. Para obter mais informações, consulte usar o serviço de projeto do SharePoint.For more information, see Use the SharePoint project service.

Compilar o códigoCompile the code

Este exemplo requer um projeto de biblioteca de classes com as referências aos assemblies a seguir:This example requires a class library project with references to the following assemblies:

  • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

  • System.ComponentModel.CompositionSystem.ComponentModel.Composition

Implantar a extensãoDeploy the extension

Para implantar a extensão, crie um Visual StudioVisual Studio pacote de extensão (VSIX) para o assembly e outros arquivos que você deseja distribuir com a extensão.To deploy the extension, create a Visual StudioVisual Studio extension (VSIX) package for the assembly and any other files that you want to distribute with the extension. Para obter mais informações, consulte implantar extensões para ferramentas do SharePoint no Visual Studio.For more information, see Deploy extensions for the SharePoint tools in Visual Studio.

Consulte tambémSee also

Como: criar uma extensão de item de projeto do SharePoint How to: Create a SharePoint project item extension
Como: adicionar uma propriedade a uma extensão de item de projeto do SharePoint How to: Add a property to a SharePoint project item extension
Estender os itens de projeto do SharePoint Extend SharePoint project items
Passo a passo: Estender um tipo de item de projeto do SharePointWalkthrough: Extend a SharePoint project item type