Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede agregar un elemento de menú contextual a un proyecto de SharePoint.El elemento de menú aparece cuando un usuario hace clic con el botón secundario en un nodo de proyecto del Explorador de soluciones.
En los siguientes pasos se presupone que ya ha creado una extensión de proyecto.Para obtener más información, vea Cómo: Crear una extensión de proyecto de SharePoint.
Para agregar un elemento de menú contextual a los proyectos de SharePoint
En el método Initialize de la implementación de ISharePointProjectExtension controle el evento ProjectMenuItemsRequested del parámetro projectService.
En el controlador de eventos del evento ProjectMenuItemsRequested, agregue un nuevo objeto IMenuItem a la colección AddMenuItems o ActionMenuItems del parámetro de argumentos del evento.
En el controlador de eventos Click del nuevo objeto IMenuItem, lleve a cabo las tareas que desee ejecutar cuando un usuario haga clic en el elemento de menú contextual.
Ejemplo
En el ejemplo de código siguiente se muestra cómo se agrega un elemento de menú contextual a los nodos de proyecto de SharePoint en el Explorador de soluciones.Cuando el usuario hace clic con el botón secundario en un nodo de proyecto y hace clic en el elemento de menú Escribir mensaje en la Ventana de salida, Visual Studio muestra un mensaje en la Ventana de salida.En este ejemplo se usa el servicio de proyecto de SharePoint para mostrar el mensaje.Para obtener más información, vea Utilizar el servicio de proyecto de 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);
}
}
}
}
Compilar el código
En este ejemplo se necesita un proyecto de biblioteca de clases con referencias a los siguientes ensamblados:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Implementar la extensión
Para implementar la extensión, cree un paquete de extensión (VSIX) de Visual Studio para el ensamblado y el resto de archivos que desee distribuir con la extensión.Para obtener más información, vea Extensiones de implementación para las Herramientas de SharePoint en Visual Studio.
Vea también
Conceptos
Extender los proyectos de SharePoint