Compartilhar via


Como: adiciona um Item de Menu de atalho para uma extensão de Item de projeto do SharePoint

Você pode adicionar um item de menu de atalho para um item de projeto existente do SharePoint usando uma extensão de item de projeto.O item de menu é exibido quando um usuário clica no item de projeto na Solution Explorer.

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

Para adicionar um item de menu de atalho em uma extensão de item de projeto

  1. No Initialize método do seu ISharePointProjectItemTypeExtension implementação, alça a ProjectItemMenuItemsRequested evento do projectItemType parâmetro.

  2. No seu manipulador de eventos para o ProjectItemMenuItemsRequested evento, adicionar um novo IMenuItem o objeto para o ViewMenuItems 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 o item de projeto do receptor de eventos.Quando o usuário clica no item de projeto na Solution Explorer e clica o Escrever a mensagem na janela Saída item de menu, Visual Studio exibe uma mensagem na saída janela.

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.Para obter mais informações, consulte Usando o serviço de projeto do SharePoint.

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

Tarefas

Passo a passo: Estendendo um tipo de Item de projeto do SharePoint

Conceitos

Como: criar uma extensão de Item de projeto do SharePoint

Como: adicionar uma propriedade para uma extensão de Item de projeto do SharePoint

Estendendo os itens de projeto do SharePoint