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
Nel metodo Initialize dell'implementazione di ISharePointProjectExtension gestire l'evento ProjectMenuItemsRequested del parametro projectService.
Nel gestore eventi dell'evento ProjectMenuItemsRequested aggiungere un nuovo oggetto IMenuItem alla raccolta ActionMenuItems o AddMenuItems del parametro degli argomenti dell'evento.
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
Concetti
Estensione di progetti SharePoint