Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Actualizado el 13/Nov/2001
http://www.elguille.info/NET/VB/beta2/menus.htm 1/5
13/6/2018 Cómo crear menús en tiempo de ejecución y añadir
Figura 1
Para añadir nuevos elementos, tendrás que escribir en el recuadro en el que se muestra el texto: "Escriba aquí".
Por tanto, vamos a hacer caso a lo que nos dice ese mensaje y escribamos "allí".
Cuando escribes en el sitio ese del menú, verás que se muestran distintas posibilidades:
Figura 2
Puedes escribir a la derecha, para crear otro menú principal;, debajo, para poder añadir submenús, etc. Creo que
es bastante intuitivo. Lo que ahí escribas, será lo que se muestre.
Pero, a los menús, además de darles un texto a mostrar, se le puede dar un nombre, el cual usaremos para
interceptar los eventos... por ejemplo, para saber cuando se pulsa en uno de ellos.
Los nombres de los menús podemos dárselos si seleccionamos el menú en cuestión y después cambiamos el
nombre en la ventana de propiedades, en esa misma ventana de propiedades podemos cambiar el texto a mostrar.
Lo habitual sería escribir los textos de los distintos menús y después asignar los nombres de esos menús.
Figura 3
http://www.elguille.info/NET/VB/beta2/menus.htm 2/5
13/6/2018 Cómo crear menús en tiempo de ejecución y añadir
Cuando está seleccionada la opción de Editar nombres, el aspecto de los menús será el mostrado en la figura 4:
Figura 4
Es decir, se podrán modificar tanto los nombres de los menús como el texto que se mostrará en ellos.
También con ese menú de opciones se pueden insertar nuevos menús, separadores, etc.
Para añadir eventos a cualquier control del formulario, e incluso al propio formulario, muestra el código del
formulario y de la lista desplegable de la izquierda, selecciona el "control" al que quieres añadir un evento, en este
ejemplo, selecciona mnuSaludar. De la lista desplegable de la derecha, selecciona el evento que quieres
interceptar, en nuestro caso el evento Click (que es el que se lanza cuando se pulsa en el menú).
Figura 5
End Sub
Una vez que tengamos el procedimiento, escribiremos lo que queramos hacer, por ejemplo, si queremos mostrar
un mensaje de salutación:
MessageBox.Show("Hola")
También se puede ir al evento del menú, haciendo dobleclick en el menú, (lo mismo que ocurre con el resto de los
controles), pero te lo he explicado de esta forma, para que sepas cómo poder añadir otros eventos además del
predeterminado; por ejemplo el evento Select, el cual se produce cuando se selecciona un menú, útil para mostrar
un mensaje en una etiqueta o en un StatusBar...
Vamos a partir de la base de que NO tenemos ningún menú creado en tiempo de diseño y que tampoco hemos
añadido el "control" MainMenu.
Como todo lo que se maneja en vb.NET depende del .NET Framework, vamos a crear una variable del tipo
MainMenu para poder añadir nuevos menús a nuestro formulario.
Después, en el evento Form_Load, añadiremos varias opciones al menú y le indicaremos qué procedimientos usar
cuando se haga click en dichos menús.
Como ya te he comentado, necesitamos crear un procedimiento que se ejecute cuando se haga click en los
distintos menús. En este caso vamos a crear sólo uno y en él, según el menú seleccionado, haremos una cosa u
otra.
En este ejemplo, vamos a mostrar el mensaje de saludo y cerrar el formulario.
Las opciones del menú serán: Saludar y Salir, (igual que en el ejemplo anterior).
http://www.elguille.info/NET/VB/beta2/menus.htm 3/5
13/6/2018 Cómo crear menús en tiempo de ejecución y añadir
Primero, declaramos una variable del tipo MainMenu, esto lo podemos hacer al principio del formulario:
Después tenemos que añadir los menús, aunque antes hay que indicarle al Visual Basic cual será el menú a usar
en el formulario... sin esto, no se mostrarán los menús. Todo esto podemos hacerlo en el evento Load del
formulario, (para mostrar el procedimiento de este evento, podemos hacerlo haciendo doble-click en el formulario.
De esta forma, añadimos los menús y le asignamos el procedimiento o los procedimientos a usar cuando se
produzca el evento click. En este caso he usado un mismo evento para dos de los menús, pero lo habitual sería
usar uno para cada uno de los eventos.
En este caso, este sería el procedimiento a usar:
Fíjate que al ser un procedimiento genérico, no habría que usar la palabra Handles después del nombre del
procedimiento, entre otras cosas, porque no podríamos hacerlo, ya que no existen en tiempo de diseño los menús
que queremos interceptar. Por otro lado, al usar el New EventHandler(AdressOf ... le estamos diciendo cual es
el procedimiento que queremos que se ejecute al hacer click en dicho menú... para saber un poco más... échale un
vistazo a la ayuda...
Por último decirte que, al no estar creados en tiempo de diseño, el Visual no reserva el espacio que ocupará el
menú, por tanto puede ser que te encuentres que los controles "están fuera de lugar".
Es decir, al ejecutarse el formulario y añadirse los menús, el formulario sigue siendo igual de alto que al diseñarlo,
pero la barra de menús ocupa un espacio y los controles se desplazan hacia abajo...
Para que lo veas mejor, te muestro el formulario en tiempo de diseño y cuando se está ejecutando:
Fíjate en el botón, cuando se ejecuta está más abajo.
http://www.elguille.info/NET/VB/beta2/menus.htm 4/5
13/6/2018 Cómo crear menús en tiempo de ejecución y añadir
Nos vemos.
Guillermo
Ir al índice de vb.net
http://www.elguille.info/NET/VB/beta2/menus.htm 5/5