Pregunta

Soy nuevo por aquí y tengo algunos problemas con una aplicación C #. Quiero capturar el evento key down. Esto no fue un problema al principio, pero después de agregar algunos botones al formulario, el evento de tecla abajo del formulario ignora las teclas de flecha y mueve el foco de un botón al siguiente. (El evento de tecla arriba funciona) ¿Hay un ¿Cómo detener esto y hacer que hagan algo más cuando sostengo las teclas de flecha?

¿Fue útil?

Solución

Configure el KeyPreview propiedad en el formulario a verdadero. Eso permitirá que el formulario vea el evento keydown además de los controles secundarios.

Agregue esto a su formulario ...

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData.Equals(Keys.Right))
    {
        MessageBox.Show("Right Key Pressed!");
    }

    return base.ProcessCmdKey(ref msg, keyData);
}

Otros consejos

Si no desea la funcionalidad normal de reducción de teclas para los controles, necesitará establecer el evento de reducción de teclas en cada control, y establecer el atributo manejado para que los argumentos del evento sean verdaderos, de esa manera no burbujeará hasta la funcionalidad de control integrada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top