Szybki start: dodawanie elementu menu skrótów do SharePoint rozszerzenia elementu projektu

Element menu skrótów można dodać do istniejącego SharePoint projektu przy użyciu rozszerzenia elementu projektu. Element menu jest wyświetlany, gdy użytkownik kliknie prawym przyciskiem myszy element projektu w Eksplorator rozwiązań.

W poniższych krokach założono, że utworzono już rozszerzenie elementu projektu. Aby uzyskać więcej informacji, zobacz How to: Create a SharePoint project item extension(Jak utworzyć rozszerzenie elementu projektu).

Aby dodać element menu skrótów w rozszerzeniu elementu projektu

  1. W Initialize metodzie ISharePointProjectItemTypeExtension implementacji obsłuż ProjectItemMenuItemsRequested zdarzenie parametru projectItemType.

  2. W programie obsługi zdarzeń ProjectItemMenuItemsRequested dla zdarzenia dodaj nowy obiekt do IMenuItem ViewMenuItems kolekcji lub AddMenuItems parametru argumentów zdarzenia.

  3. W programie obsługi zdarzeń dla nowego obiektu wykonaj zadania, które chcesz wykonać, gdy użytkownik Click kliknie element menu IMenuItem skrótów.

Przykład

W poniższym przykładzie kodu pokazano, jak dodać element menu skrótów do elementu projektu Odbiorcy zdarzeń. Gdy użytkownik kliknie prawym przyciskiem myszy element projektu w oknie Eksplorator rozwiązań i kliknie element menu Zapisz komunikat Okno Dane wyjściowe, Visual Studio wyświetli komunikat w oknie Dane wyjściowe.

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

W tym przykładzie użyto SharePoint usługa projektów, aby zapisać komunikat w oknie Dane wyjściowe. Aby uzyskać więcej informacji, zobacz Używanie SharePoint usługa projektów.

Kompilowanie kodu

Ten przykład wymaga projektu biblioteki klas z odwołaniami do następujących zestawów:

  • Microsoft.VisualStudio. SharePoint

  • System.componentmodel.composition

Wdrażanie rozszerzenia

Aby wdrożyć rozszerzenie, utwórz pakiet rozszerzenia (VSIX) dla zestawu i innych plików, które chcesz dystrybuować Visual Studio za pomocą rozszerzenia. Aby uzyskać więcej informacji, zobacz Deploy extensions for the SharePoint tools in Visual Studio.

Zobacz też