Comment : ajouter un élément de menu contextuel à des projets SharePointHow to: Add a Shortcut Menu Item to SharePoint Projects

Vous pouvez ajouter un élément de menu contextuel à un projet SharePoint.You can add a shortcut menu item to any SharePoint project. L’élément de menu s’affiche lorsqu’un utilisateur clique sur un nœud de projet dans l’Explorateur de solutions.The menu item appears when a user right-clicks a project node in Solution Explorer.

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

Pour ajouter un élément de menu contextuel à des projets SharePointTo add a shortcut menu item to SharePoint projects

  1. Dans le Initialize méthode de votre ISharePointProjectExtension implémentation, gérez le ProjectMenuItemsRequested l’événement de la projectService paramètre.In the Initialize method of your ISharePointProjectExtension implementation, handle the ProjectMenuItemsRequested event of the projectService parameter.

  2. Dans votre gestionnaire d’événements pour le ProjectMenuItemsRequested événement, ajouter un nouveau IMenuItem de l’objet à la ActionMenuItems ou AddMenuItems collection du paramètre d’arguments de l’événement.In your event handler for the ProjectMenuItemsRequested event, add a new IMenuItem object to the ActionMenuItems or AddMenuItems collection of the event arguments parameter.

  3. Dans le Click pour le nouveau gestionnaire d’événements IMenuItem de l’objet, effectuez les tâches que vous souhaitez exécuter lorsqu’un utilisateur clique sur votre é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 aux nœuds de projet SharePoint de l’Explorateur de solutions.The following code example demonstrates how to add a shortcut menu item to SharePoint project nodes in Solution Explorer. Lorsque l’utilisateur clique un nœud de projet et clique sur le écrire le Message dans la fenêtre sortie élément de menu, Visual Studio affiche un message dans le sortie fenêtre.When the user right-clicks a project node and clicks the Write Message to Output Window menu item, Visual Studio displays a message in the Output window. Cet exemple utilise le service de projet SharePoint pour afficher le message.This example uses the SharePoint project service to display the message. Pour plus d’informations, consultez à l’aide du Service de projet SharePoint.For more information, see Using the SharePoint Project Service.

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

Compilation du codeCompiling the Code

Cet exemple requiert 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éploiement de l’ExtensionDeploying 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éploiement d’Extensions pour les outils SharePoint dans Visual Studio.For more information, see Deploying Extensions for the SharePoint Tools in Visual Studio.

Voir aussiSee Also

Extension des projets SharePoint Extending SharePoint Projects
Comment : créer une Extension de projet SharePoint How to: Create a SharePoint Project Extension
Guide pratique pour ajouter une propriété à des projets SharePointHow to: Add a Property to SharePoint Projects