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
Nel metodo Initialize dell'implementazione di ISharePointProjectItemTypeExtension, gestire l'evento ProjectItemMenuItemsRequested del parametro projectItemType.
Nel gestore eventi dell'evento ProjectItemMenuItemsRequested aggiungere un nuovo oggetto IMenuItem all'insieme ViewMenuItems 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 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