[How To] Agregar un elemento de menú a Visual Studio.

Introducción

En este post quiero explicar como agregar una nueva opción de menú propia a un menú de Visual Studio.

¿Por dónde empezar?

El primer paso para que podamos empezar a “extender” Visual Studio es realizar la descarga del último SDK disponible.

Una vez descargado e instalado, vamos a abrir Visual Studio, y generaremos un nuevo proyecto de tipo: Complemento de Visual Studio

 

image

Una vez pulsado Aceptar, va aparecer un asistente donde indicaremos el lenguaje que vamos a utilizar en nuestro AddIn, el nombre, donde se va a utilizar…

 

image image image  image

image

  Una vez finalizado el asistente, vamos a ver el tema de agregar una nueva opción a un menú.

Un objeto predefinido en la clase de inicio del AddIn va a ser _applicationObject, que va a ser del tipo DTE2.

Vamos a definir un método donde vamos a implementar la lógica de agregación del menú:

   1: private void CreateMyMenuOption(DTE2 _applicationObject)

   2:         {

   3:             if (_applicationObject == null) throw new ArgumentNullException("_applicationObject");;

   4:             CommandBar oCommandBar = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars)["Solution"];

   5:  

   6:             CommandBarButton myMenu = (CommandBarButton)oCommandBar.Controls.Add(MsoControlType.msoControlButton, 

   7:                                      System.Reflection.Missing.Value, System.Reflection.Missing.Value, 1, true);

   8:             myMenu.Caption = "Mi Menu";

   9:             try

  10:             {

  11:                 oSubMenuItemHandler = (CommandBarEvents)_applicationObject.Events.get_CommandBarEvents(myMenu);

  12:                 oSubMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(oSubMenuItemHandler_Click);

  13:             }

  14:             catch (Exception ex)

  15:             {

  16:                 ShowException(ex);

  17:             }

  18:         }

A través del objeto CommandBar, vamos a elegir el menú donde vamos a agregar la nueva opción que estamos creando.

Para obtener un listado de los menús disponible bastaría con recorrer la colección y obtener la propiedad Name:

   1: CommandBars commandBars = (CommandBars)_applicationObject.CommandBars;

Dentro del método defino un objeto del tipo CommandBarButton que agregaré a la colección de controles existentes en el menú seleccionado previamente.

En este objeto podremos definir un conjunto de propiedades como puede ser el Nombre que se visualizará, el ToolTip, la descripción…

Para asignarle un evento, vamos a utilizar una variable del tipo CommandBarEvents, y asignaremos su evento click:

   1: CommandBarEvents oSubMenuItemHandler;

   2: void oSubMenuItemHandler_Click(object CommandBarControl, ref bool Handled, ref bool CancelDefault)

   3:         {

   4:             MessageBox.Show("Me has pulsado!!!");

   5:         }

El menú de destino de está prueba va a ser el menú contextual de “Soluciones”.

Para probar nuestro nuevo menú, bastará con que pulsemos F5. Al hacerlo, se va a abrir una nueva instancia de Visual Studio. Dentro generaremos un nuevo proyecto de tipo Solución en Blanco, al pulsar con el botón secundario sobre la nueva solución, aparecerá la nueva opción de menú que hemos definido de forma funcional.

image

image

 

Espero que os sea de utilidad.

Saludos!

3 comentarios sobre “[How To] Agregar un elemento de menú a Visual Studio.”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *