Comment : ajouter un élément de menu contextuel à une extension d’élément de projet SharePointHow to: Add a shortcut menu item to a SharePoint project item extension

Vous pouvez ajouter un élément de menu contextuel à un élément de projet SharePoint existant à l’aide d’une extension d’élément de projet.You can add a shortcut menu item to an existing SharePoint project item by using a project item extension. L’élément de menu s’affiche lorsqu’un utilisateur clique avec le bouton droit sur l’élément de projet dans Explorateur de solutions.The menu item appears when a user right-clicks the project item in Solution Explorer.

Les étapes suivantes supposent que vous avez déjà créé une extension d’élément de projet.The following steps assume that you have already created a project item extension. Pour plus d’informations, consultez Comment : créer une extension d’élément de projet SharePoint.For more information, see How to: Create a SharePoint project item extension.

Pour ajouter un élément de menu contextuel dans une extension d’élément de projetTo add a shortcut menu item in a project item extension

  1. Dans la Initialize méthode de votre ISharePointProjectItemTypeExtension implémentation, gérez l' ProjectItemMenuItemsRequested événement du paramètre projectItemType .In the Initialize method of your ISharePointProjectItemTypeExtension implementation, handle the ProjectItemMenuItemsRequested event of the projectItemType parameter.

  2. Dans votre gestionnaire d’événements pour l' ProjectItemMenuItemsRequested événement, ajoutez un nouvel IMenuItem objet à ViewMenuItems la AddMenuItems collection ou du paramètre d’arguments d’événement.In your event handler for the ProjectItemMenuItemsRequested event, add a new IMenuItem object to the ViewMenuItems or AddMenuItems collection of the event arguments parameter.

  3. Dans le Click Gestionnaire d’événements du nouvel IMenuItem objet, effectuez les tâches que vous souhaitez exécuter lorsqu’un utilisateur clique sur l’élément de menu contextuel.In the Click event handler for the new IMenuItem object, perform the tasks you want to execute when a user clicks your shortcut menu item.

ExempleExample

L’exemple de code suivant montre comment ajouter un élément de menu contextuel à l’élément de projet récepteur d’événements.The following code example demonstrates how to add a shortcut menu item to the Event Receiver project item. Quand l’utilisateur clique avec le bouton droit sur l’élément de projet dans Explorateur de solutions et clique sur l’élément de menu écrire le message dans fenêtre Sortie , Visual Studio affiche un message dans la fenêtre sortie .When the user right-clicks the project item in Solution Explorer and clicks the Write Message to Output Window menu item, Visual Studio displays a message in the Output window.

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

Cet exemple utilise le service de projet SharePoint pour écrire le message dans la fenêtre sortie .This example uses the SharePoint project service to write the message to the Output window. Pour plus d’informations, consultez utiliser le service de projet SharePoint.For more information, see Use the SharePoint project service.

Compiler le codeCompile the code

Cet exemple nécessite un projet de bibliothèque de classes avec des références aux assemblys suivants :This example requires a class library project with references to the following assemblies:

  • Microsoft. VisualStudio. SharePointMicrosoft.VisualStudio.SharePoint

  • System.ComponentModel.CompositionSystem.ComponentModel.Composition

Déployer l’extensionDeploy the extension

Pour déployer l’extension, créez un Visual StudioVisual Studio package d’extension (VSIX) pour l’assembly et tous les autres fichiers que vous souhaitez distribuer avec l’extension.To deploy the extension, create a Visual StudioVisual Studio extension (VSIX) package for the assembly and any other files that you want to distribute with the extension. Pour plus d’informations, consultez déployer des extensions pour les outils SharePoint dans Visual Studio.For more information, see Deploy extensions for the SharePoint tools in Visual Studio.

Voir aussiSee also