visual textbox1_keydown textbox1 studio c# winforms event-handling keydown

c# - textbox1_keydown - Problemas para crear el evento KeyDown en el Panel



textbox1 keypress (1)

El control del panel no puede enfocarse y tampoco puede seleccionarse. Los controles enfocados solo pueden obtener "eventos clave". Es probable que deba anular ProcessCmdKey en su formulario o UserControl .

Necesita configurar KeyPreview = true

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { switch(keydata) { case Keys.Up: break; ... } return base.ProcessCmdKey(ref msg, keyData); }

Actualmente estoy trabajando en winform que tiene un panel en él. Necesito poder usar las flechas hacia arriba, abajo, izquierda y derecha en el panel y conseguir que algo suceda.

Intenté agregar el evento con esta línea de código:

(MainPanel as Control).KeyDown += new KeyEventHandler(panelKeyPressEventHandler);

Con este código KeyDown:

public void panelKeyPressEventHandler(object sender, System.Windows.Forms.KeyEventArgs e) { MessageBox.Show("Here I am!"); switch (e.KeyCode) { case Keys.L: { break; } case Keys.R: { break; } case Keys.Up: { break; } case Keys.Down: { break; } case Keys.Right: { break; } case Keys.Left: { break; } } }

Hasta ahora, incluso cuando garantizo que el foco está configurado en el panel, no puedo hacer que entre a esta función de evento KeyDown para nada. :( Puedo presionar las teclas todo el día y no pasa nada.

¿Alguien tiene alguna sugerencia sobre la mejor manera de manejar las flechas arriba, abajo, izquierda y derecha presionadas cuando un panel tiene foco?

¡Gracias!