Saltar al contenido

¿Detecta el clic izquierdo y derecho del mouse al mismo tiempo?

Luego de tanto trabajar pudimos dar con la respuesta de este conflicto que muchos usuarios de este sitio presentan. Si quieres compartir alguna información puedes dejar tu conocimiento.

Solución:

Cree una variable booleana de clase para el botón izquierdo y derecho predeterminado a false. Cuando se dispara el evento del mouse hacia abajo, establezca la variable en true y comprobar si ambos son true. Cuando el mouse se dispare, establezca la variable en false.

    public bool m_right = false;
    public bool m_left = false;

    private void MainForm_MouseDown(object sender, MouseEventArgs e)
    
        m_objGraphics.Clear(SystemColors.Control);

        if (e.Button == MouseButtons.Left)
            m_left = true;
        if (e.Button == MouseButtons.Right)
            m_right = true;

        if (m_left == false 

    private void MainForm_MouseUp(object sender, MouseEventArgs e)
    
        if (e.Button == MouseButtons.Left)
            m_left = false;
        if (e.Button == MouseButtons.Right)
            m_right = false;
     

Código completo:

    private void Form1_MouseDown(object sender, MouseEventArgs e)
    
        if (e.Button == MouseButtons.Left) leftPressed = true;
        else if (e.Button == MouseButtons.Right) rightPressed = true;


        if (leftPressed && rightPressed)
        
            MessageBox.Show("Hello");

            // note: 
            // the following are needed if you show a modal window on mousedown, 
            // the modal window somehow "eats" the mouseup event, 
            // hence not triggering the MouseUp event below
            leftPressed = false;
            rightPressed = false;
        


    

    private void Form1_MouseUp(object sender, MouseEventArgs e)
    
        if (e.Button == MouseButtons.Left) leftPressed = false;
        else if (e.Button == MouseButtons.Right) rightPressed = false;
    

Otra opción es utilizar el static Botones del ratón sobre el Sistema.Windows.Forms.Control clase

Esto le dirá qué botones del mouse están presionados actualmente para que pueda hacer algo como lo siguiente:

((Control.MouseButtons & MouseButtons.Right) == MouseButtons.Right) &&
((Control.MouseButtons & MouseButtons.Left) == MouseButtons.Left)

También puede consultar el ejemplo de MSDN

Finalizando este artículo puedes encontrar las aclaraciones de otros sys admins, tú asimismo eres capaz dejar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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