Udostępnij za pośrednictwem


Porady: dodawanie pozycji menu skrótów do niestandardowego typu elementu projektu SharePoint

Podczas definiowania niestandardowych typu element projektu programu SharePoint, element menu skrótów można dodać do elementu projektu.Zostanie wyświetlony element menu, gdy użytkownik kliknie prawym przyciskiem myszy element projektu w Solution Explorer.

W poniższych krokach przyjęto, został już zdefiniowany własnych typu element projektu programu SharePoint.Aby uzyskać więcej informacji, zobacz Porady: definiowanie typu elementu projektu SharePoint.

Aby dodać element menu skrótów do typ elementu niestandardowego projektu

  1. W InitializeType metoda Twój ISharePointProjectItemTypeProvider realizacji, uchwyt ProjectItemMenuItemsRequested zdarzenie z projectItemTypeDefinition parametru.

  2. W obsługi zdarzenia dla ProjectItemMenuItemsRequested zdarzenia, Dodaj nowy IMenuItem obiekt do ViewMenuItems lub AddMenuItems zbioru zdarzeń argumenty parametru.

  3. W Click obsługi zdarzeń dla nowych IMenuItem obiektów, należy wykonać te zadania, które chcesz wykonać, gdy użytkownik wybierze elementu menu skrótów.

Przykład

Poniższy przykład kodu pokazuje, jak dodać menu kontekstowego typ elementu niestandardowego projektu.Kiedy użytkownik otwiera menu skrótów z element projektu w Solution Explorer i wybiera Napisać wiadomość do okna dane wyjściowe elementu menu, Visual Studio wyświetla komunikat w produkcji okna.

Imports System
Imports System.ComponentModel.Composition
Imports Microsoft.VisualStudio.SharePoint

Namespace Contoso.Examples.ProjectItemTypeWithMenu

    <Export(GetType(ISharePointProjectItemTypeProvider))> _
    <SharePointProjectItemType("Contoso.ExampleProjectItemType")> _
    <SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")> _
    Friend Class ExampleProjectItemTypeWithMenu
        Implements ISharePointProjectItemTypeProvider

        Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _
            Implements ISharePointProjectItemTypeProvider.InitializeType
            projectItemTypeDefinition.Name = "ExampleProjectItemType"
            projectItemTypeDefinition.SupportedDeploymentScopes = _
                SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web
            projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All

            AddHandler projectItemTypeDefinition.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.ProjectItemTypeWithMenu
{
    [Export(typeof(ISharePointProjectItemTypeProvider))]
    [SharePointProjectItemType("Contoso.ExampleProjectItemType")]
    [SharePointProjectItemIcon("ExampleProjectItemType.ProjectItemIcon.ico")]
    internal class ExampleProjectItemTypeWithMenu : ISharePointProjectItemTypeProvider
    {
        public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition)
        {
            projectItemTypeDefinition.Name = "ExampleProjectItemType";
            projectItemTypeDefinition.SupportedDeploymentScopes =
                SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web;
            projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All;

            projectItemTypeDefinition.ProjectItemMenuItemsRequested += 
                projectItemTypeDefinition_ProjectItemMenuItemsRequested;
        }

        void projectItemTypeDefinition_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 usługi programu SharePoint projektu, aby napisać wiadomość do produkcji okna.Aby uzyskać więcej informacji, zobacz Korzystanie z usługi projektu SharePoint.

Kompilowanie kodu

W tym przykładzie wymaga projektu biblioteki klas, z odniesieniem do następujących zestawów:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Wdrażanie element projektu

Aby włączyć innych producentów do używania przedmiotu projektu, należy utworzyć szablon projektu lub szablonu elementu projektu.Aby uzyskać więcej informacji, zobacz Tworzenie szablonów elementów i szablonów projektu dla elementów projektu SharePoint.

Aby wdrożyć element projektu, należy utworzyć Visual Studio pakiet rozszerzenia (VSIX) Zgromadzenia, szablon i innych plików, które chcesz dystrybuować z elementem projektu.Aby uzyskać więcej informacji, zobacz Wdrażanie rozszerzeń dla narzędzi SharePoint w Visual Studio.

Zobacz też

Koncepcje

Porady: definiowanie typu elementu projektu SharePoint

Porady: dodawanie właściwości do niestandardowego typu elementu projektu SharePoint

Definiowanie niestandardowych typów elementów projektu SharePoint