Agregar Menú Contextual con Click Derecho a Elementos con C# .NET


El menú contextual del click derecho es una opción o característica que es muy útil y ayuda al usuario a usar mejor una aplicación de escritorio.

Todos estamos acostumbrados al de click derecho para abrir un menú de opciones en lugares concretos de una aplicación, aquí veremos como agregar el menú contextual a nuestras propias aplicaciones.

Código

En el siguiente código vamos a crear un ContextMenu y agregaremos varias opciones.

El código se puede agregar en el constructor de una clase o en una función de algún evento.

            // Creamos la instancia del menu contextual
            ContextMenu cm = new ContextMenu();

            // Creamos un elemento de menu
            MenuItem mi1 = new MenuItem("Opcion 1");
            mi1.Click += Opcion1; // Asignamos una Funcion o Metodo que se ejecutara al hacer click en la opcion seleccionada

            // Creamos un elemento de menu
            MenuItem mi2 = new MenuItem("Opcion 2");
            mi2.Click += Opcion2; // Asignamos una Funcion o Metodo que se ejecutara al hacer click en la opcion seleccionada

            // Creamos un elemento de menu
            MenuItem mi3 = new MenuItem("Opcion 3");
            mi3.Click += Opcion3; // Asignamos una Funcion o Metodo que se ejecutara al hacer click en la opcion seleccionada

            cm.MenuItems.Add(mi1); // Agregamos el elemento de menu al menu contextual
            cm.MenuItems.Add(mi2); // Agregamos el elemento de menu al menu contextual
            cm.MenuItems.Add(mi3); // Agregamos el elemento de menu al menu contextual

Ya que creamos el menú ahora lo vamos a asignar a un elemento.

En mi caso, le agregare el menú contextual a un Boton/Button.

            button1.ContextMenu = cm;

El atributo ContextMenu sirve para asignarle un MenuContextual a cualquier elemento que lo contenga.

También podemos agregar el ContextMenu a el formulario principal u otro formulario, por ejemplo:

            this.ContextMenu = cm;

Lo siguiente seria definir los métodos o funciones que se ejecutaran al hacer click en las opciones del menú.

        void Opcion1(object sender, EventArgs e) {
            MessageBox.Show("Opcion 1");
        }
        void Opcion2(object sender, EventArgs e)
        {
            MessageBox.Show("Opcion 2");
        }
        void Opcion3(object sender, EventArgs e)
        {
            MessageBox.Show("Opcion 3");
        }

Y Listo ya tenemos un ContextMenu funcionando, solo basta ejecutar el proyecto y hacer click derecho sobre el elemento que deseen.

Ustedes pueden personalizar los nombres de las opciones, funciones y todo ;).

Leave a comment