Condividi tramite


Procedura: aggiungere una voce di menu di scelta rapida ai progetti SharePoint

È possibile aggiungere una voce di menu di scelta rapida a qualsiasi progetto SharePoint. La voce di menu viene visualizzata quando un utente fa clic con il pulsante destro del mouse su un nodo di progetto in Esplora soluzioni.

Nei passaggi seguenti si suppone che sia già stata creata un'estensione di progetto. Per ulteriori informazioni, vedere Procedura: creare un'estensione di progetto SharePoint.

Per aggiungere una voce di menu di scelta rapida ai progetti SharePoint

  1. Nel metodo Initialize dell'implementazione di ISharePointProjectExtension gestire l'evento ProjectMenuItemsRequested del parametro projectService.

  2. Nel gestore eventi dell'evento ProjectMenuItemsRequested aggiungere un nuovo oggetto IMenuItem all'insieme ActionMenuItems 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 ai nodi di progetto SharePoint in Esplora soluzioni. Quando l'utente fa clic con il pulsante destro del mouse su un nodo di progetto e sceglie la voce di menu Write Message to Output Window, viene visualizzato un messaggio nella finestra Output di Visual Studio. In questo esempio viene utilizzato il servizio di progetto SharePoint per visualizzare il messaggio. Per ulteriori informazioni, vedere Utilizzo del servizio di progetto 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);
            }
        }
    }
}

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 progetto SharePoint

Altre risorse

Estensione di progetti SharePoint

Procedura: aggiungere una proprietà ai progetti SharePoint