none
Boton derecho en el evento MouseClick de un Button RRS feed

  • Pregunta

  • Hola a todos. 

    Deseo controlar la pulsación del botón derecho sobre un control Button y encuentro información confusa en la nube.

    En algunos caso dice que se puede hacer y en otros que no. Desde luego a mi no me funciona y no se si estoy haciendo algo mal o sencillamente es que no se puede hacer.

    Este es el código, funciona con el izquierdo, pero con el derecho no.

    private void btnArticulo0_MouseClick(object sender, MouseEventArgs e)
            {            
                if (e.Button == System.Windows.Forms.MouseButtons.Right)
                {
                    MessageBox.Show("Has pulsado el botón derecho", "MouseClick Event");
                }
                else
                {
                    MessageBox.Show("Has pulsado el botón izquierdo", "MouseClick Event");
                }
            }

    Muchas gracias


    No aprendemos gracias a la escuela sino gracias a los foros ;-) (la original es de Séneca y en lugar de foros es vida)

    jueves, 14 de diciembre de 2017 20:18

Respuestas

  • Entiendo que no todos los eventos del mouse se producen con la pulsación del botón derecho, si lo captura el evento 'MouseDown' o el evento 'MouseUp'.

    private void button1_MouseUp(object sender, MouseEventArgs e)
    {
    	if (e.Button == MouseButtons.Right)
    	{
    		MessageBox.Show("Has pulsado el botón derecho", "MouseUp Event");
    	}
    	else if (e.Button == MouseButtons.Left)
    	{
    		MessageBox.Show("Has pulsado el botón izquierdo", "MouseUp Event");
    	}
    }

    • Marcado como respuesta ravipe viernes, 15 de diciembre de 2017 6:31
    jueves, 14 de diciembre de 2017 22:26

Todas las respuestas

  • Hola Ravipe, lo que entiendo es que en un button no se detecta, en primera instancia otro mousebuton que no sea el izquierdo ya que  es el que desencadena el click, por tal, tanto left como Rueda no provocaran un disparo, como alternativa puedes evaluar utilizar un label, teniendo en cunta las limitaciónes del caso (no se tiene foco), pero el caso que si responde a cualquier pulsación del mouse

     private void label5_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Right)
                {
                    MessageBox.Show("Has pulsado el botón Derecho", "MouseClick Event");
                    return;
                }
                if (e.Button == System.Windows.Forms.MouseButtons.Left)
                {
                    MessageBox.Show("Has pulsado el botón Izquierdo", "MouseClick Event");
                    return;
                }
                if (e.Button == System.Windows.Forms.MouseButtons.Middle)
                {
                    MessageBox.Show("Has pulsado el botón Rueda", "MouseClick Event");
                    return;
                }
            }
    Se que no debe ser lo que buscas, solo una variable posible Slaudos


    • Editado Marcelo PF jueves, 14 de diciembre de 2017 21:34
    jueves, 14 de diciembre de 2017 21:33
  • Entiendo que no todos los eventos del mouse se producen con la pulsación del botón derecho, si lo captura el evento 'MouseDown' o el evento 'MouseUp'.

    private void button1_MouseUp(object sender, MouseEventArgs e)
    {
    	if (e.Button == MouseButtons.Right)
    	{
    		MessageBox.Show("Has pulsado el botón derecho", "MouseUp Event");
    	}
    	else if (e.Button == MouseButtons.Left)
    	{
    		MessageBox.Show("Has pulsado el botón izquierdo", "MouseUp Event");
    	}
    }

    • Marcado como respuesta ravipe viernes, 15 de diciembre de 2017 6:31
    jueves, 14 de diciembre de 2017 22:26
  • Marcelo esa opción la estaba barajando como última instancia, ya que como tu bien dices, no tengo el foco y el aspecto varía sustancialmente al botón. De todas formas gracias.

    Tan fácil y a veces busca uno lo más complicado.

    Muchas gracias Willams.


    No aprendemos gracias a la escuela sino gracias a los foros ;-) (la original es de Séneca y en lugar de foros es vida)


    • Editado ravipe viernes, 15 de diciembre de 2017 6:34
    viernes, 15 de diciembre de 2017 6:32