[How To] Agregar un elemento de menú a Visual Studio. - El blog de Javier Torrecilla

[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!

Published 12/12/2011 13:48 por Javier Torrecilla
Archivado en: ,,
Comparte este post:
http://geeks.ms/blogs/jtorrecilla/archive/2011/12/12/how-to-agregar-un-elemento-de-men-250-a-visual-studio.aspx

Comentarios

# [HowTo]Obtener los Tipos de Proyecto de Visual Studio

Introducción En mi anterior artículo explicaba la forma de agregar una nueva opción de menú a uno ya

Wednesday, December 14, 2011 11:16 AM por El blog de Javier Torrecilla

# [HowTo] Agregar un Proyecto Nuevo a Visual Studio desde Código

Introducción En un post anterior vimos como definir un nuevo elemento en el Menú contextual de la Solución

Wednesday, December 14, 2011 4:36 PM por El blog de Javier Torrecilla

# [HowTo]Agregar Código al Código desde un Addin

Introducción Antes de comenzar a hablar del propio titulo, vamos a hacer un índice de los artículos publicados

Thursday, December 29, 2011 10:07 AM por El blog de Javier Torrecilla