Практическое руководство. Добавление пункта контекстного меню в проекты SharePoint
В элементе проекта SharePoint можно добавить пункт контекстного меню.Этот пункт меню отображается, когда пользователь щелкает правой кнопкой мыши узел проекта в Обозревателе решений.
В описании следующих действий предполагается, что расширение проекта уже создано.Дополнительные сведения см. в разделе Практическое руководство. Создание расширения проекта SharePoint.
Добавление пункта контекстного меню в проекты SharePoint
В методе Initialize реализации ISharePointProjectExtension обработайте событие ProjectMenuItemsRequested параметра projectService.
В обработчике событий для события ProjectMenuItemsRequested добавьте новый объект IMenuItem в коллекцию ActionMenuItems или AddMenuItems параметра аргументов события.
Выполните в обработчике событий Click для нового объекта IMenuItem задачи, которые должны выполняться при выборе пользователем пункта контекстного меню.
Пример
В следующем примере кода демонстрируется добавление пункта контекстного меню в узел проекта SharePoint в Обозреватель решений.Когда пользователь щелкает правой кнопкой мыши узел проекта и выбирает пункт меню Написать сообщение в окно выходных данных, Visual Studio отображает сообщение в окне Выходные данные.В этом примере используется служба проекта SharePoint для отображения сообщения.Дополнительные сведения см. в разделе Использование службы проектов SharePoint.
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
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);
}
}
}
}
Компиляция кода
Для этого примера требуется проект библиотеки классов со ссылками на следующие сборки:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Развертывание расширения
Чтобы развернуть расширение, создайте пакет расширения Visual Studio (VSIX) для сборки и всех остальных файлов, которые предположительно будут распространяться с расширением.Дополнительные сведения см. в разделе Разработка расширений для средств SharePoint в Visual Studio.
См. также
Основные понятия
Расширение проектов SharePoint
Практическое руководство. Создание расширения проекта SharePoint
Практическое руководство. Добавление свойства в проекты SharePoint