postupy: přidání položky místní nabídky do rozšíření položky projektu SharePoint

můžete přidat položku místní nabídky do existující položky projektu SharePoint pomocí rozšíření položky projektu. Položka nabídky se zobrazí, když uživatel klikne pravým tlačítkem myši na položku projektu v Průzkumník řešení.

Následující postup předpokládá, že jste již vytvořili rozšíření položky projektu. další informace najdete v tématu postup: vytvoření rozšíření položky projektu SharePoint.

Přidání položky místní nabídky v rozšíření položky projektu

  1. V Initialize metodě vaší ISharePointProjectItemTypeExtension implementace zpracujte ProjectItemMenuItemsRequested událost parametru projectItemType .

  2. V obslužné rutině události pro ProjectItemMenuItemsRequested událost přidejte nový IMenuItem objekt do ViewMenuItems kolekce nebo v AddMenuItems parametru argumenty události.

  3. V Click obslužné rutině události pro nový IMenuItem objekt proveďte úkoly, které chcete spustit, když uživatel klikne na položku místní nabídky.

Příklad

Následující příklad kódu ukazuje, jak přidat položku místní nabídky do položky projektu přijímače událostí. když uživatel klikne pravým tlačítkem myši na položku projektu v Průzkumník řešení a klikne na položku nabídky napsat zprávu pro okno Výstup , Visual Studio zobrazí zprávu v okně výstup .

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

v tomto příkladu se používá projektové služby SharePoint k zápisu zprávy do okna výstup . další informace najdete v tématu použití projektové služby SharePoint.

Kompilovat kód

Tento příklad vyžaduje projekt knihovny tříd s odkazy na následující sestavení:

  • Microsoft. VisualStudio. SharePoint

  • System. ComponentModel. složení

Nasazení rozšíření

Chcete-li nasadit rozšíření, vytvořte Visual Studio balíček rozšíření (VSIX) pro sestavení a všechny další soubory, které chcete distribuovat s rozšířením. další informace najdete v tématu nasazení rozšíření pro nástroje SharePoint v Visual Studio.

Viz také