Pregunta

Me gustaría agregar un elemento de menú personalizado cuando hace clic derecho en una determinada extensión de archivo en Visual Studio.

Parece que hay algunos proyectos de código abierto de ayuda para lograr esto, pero me gustaría preguntar si alguien los ha usado alguna vez, y qué tan fáciles fueron, y ¿puede ayudarme y proporcionar un punto de partida?

Una que he investigado es: http://www.codeplex.com/ManagedMenuExtension

¿Fue útil?

Solución

Aquí hay un tutorial que explica cómo agregar un menú contextual usando una macro en lugar de crear un complemento de Visual Studio. Espero que ayude:

Ampliación de los menús contextuales de Visual Studio

Otros consejos

Sí, la forma más fácil es crear una macro personalizada para manejar su tarea (en VB).

Agregar macro

En primer lugar, seleccione Herramientas > Macros > Macros IDE (Alt + F11). Para que todo quede claro, agregue un nuevo módulo, por ejemplo & ContextMenu y ponle el siguiente código:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module ContextMenu

Public Sub DoSomething()
    'Few declarations'
    Dim SolutionExplorer As UIHierarchy
    Dim Item As UIHierarchyItem
    Dim SelectedItem As EnvDTE.ProjectItem

    'Getting the solution explorer'
    SolutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()

    'Iterating through all selected items'
    For Each Item In SolutionExplorer.SelectedItems
        'Getting the item'
        SelectedItem = CType(Item.Object, EnvDTE.ProjectItem)

        'Do some stuff here'
        If SelectedItem.FileNames(1).EndsWith("txt") Then
            MsgBox("We got the text file!", , SelectedItem.FileNames(1))
        Else
            MsgBox("We got something else...", , SelectedItem.FileNames(1))
        End If
    Next
End Sub
End Module

Por supuesto, debe personalizar la forma en que maneja los nombres de archivo seleccionados. Por ahora, solo mostrará una ventana emergente para cada archivo, diferente si será un archivo txt.

Personalizar el menú contextual

La segunda tarea es agregar su macro personalizada al menú contextual; ir: Tools>Customize

Marque los menús contextuales de la lista en " Barras de herramientas " pestaña (la nueva barra de herramientas con todos los menús contextuales debería aparecer en la ventana principal) y cambiar a "Comandos" lengüeta. Ahora, desde la barra de herramientas de los menús contextuales, seleccione: " Menús contextuales del proyecto y la solución " > Item y arrastre su macro a ella desde " Comandos " lengüeta. Cambie su nombre / icono / botón debajo del menú del botón derecho.

Ahora está listo para probarlo y usarlo. La macro que acaba de agregar debe aparecer en el menú contextual del elemento. ¡Diviértete!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top