Condividi tramite


Procedura: aggiungere una voce di menu di scelta rapida a un'estensione di elemento di progetto SharePoint

È possibile aggiungere una voce di menu di scelta rapida a un elemento di progetto SharePoint esistente utilizzando un'estensione di elemento di progetto. La voce di menu viene visualizzata quando un utente fa clic con il pulsante destro del mouse sull'elemento di progetto in Esplora soluzioni.

I passaggi seguenti presuppongono che sia già stata creata un'estensione di elemento di progetto. Per ulteriori informazioni, vedere Procedura: creare un'estensione di elemento del progetto SharePoint.

Per aggiungere una voce di menu di scelta rapida in un'estensione di elemento di progetto

  1. Nel metodo Initialize dell'implementazione di ISharePointProjectItemTypeExtension, gestire l'evento ProjectItemMenuItemsRequested del parametro projectItemType.

  2. Nel gestore eventi dell'evento ProjectItemMenuItemsRequested aggiungere un nuovo oggetto IMenuItem all'insieme ViewMenuItems o AddMenuItems del parametro degli argomenti dell'evento.

  3. Nel gestore eventi Click del nuovo oggetto IMenuItem effettuare le attività da eseguire quando un utente fa clic sulla voce del menu di scelta rapida.

Esempio

Nell'esempio di codice seguente viene illustrato come aggiungere una voce di menu di scelta rapida all'elemento di progetto Ricevitore di eventi. Quando l'utente fa clic con il pulsante destro del mouse sull'elemento di progetto in Esplora soluzioni e seleziona la voce di menu Write Message to Output Window, in Visual Studio viene visualizzato un messaggio nella finestra Output.

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);
        }
    }
}

In questo esempio viene utilizzato il servizio di progetto SharePoint per scrivere il messaggio nella finestra Output. Per ulteriori informazioni, vedere Utilizzo del servizio di progetto SharePoint.

Compilazione del codice

Per questo esempio è necessario un progetto Libreria di classi con i riferimenti agli assembly seguenti:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Distribuzione dell'estensione

Per distribuire l'estensione, creare un pacchetto Visual Studio Extension (VSIX) per l'assembly e qualsiasi altro file che si desidera distribuire con l'estensione. Per ulteriori informazioni, vedere Distribuzione di estensioni per gli strumenti di SharePoint in Visual Studio.

Vedere anche

Attività

Procedura: creare un'estensione di elemento del progetto SharePoint

Procedura dettagliata: estensione di un tipo di elemento di progetto SharePoint

Altre risorse

Procedura: aggiungere una proprietà a un'estensione di elemento di progetto SharePoint

Estensione di elementi di progetto SharePoint