2012-08-04 22 views
10

Básicamente, quiero poder desencadenar un evento cuando se presiona la tecla ENTER. Intenté esto ya:¿Cómo puedo saber cuándo se presiona la tecla Intro en un cuadro de texto?

private void input_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Equals("{ENTER}")) 
     { 
      MessageBox.Show("Pressed enter."); 
     } 
    } 

Pero el MessageBox nunca aparece. ¿Cómo puedo hacer esto?

+6

Podría ser una buena idea hacer esto en KeyUp (dependiendo de sus circunstancias). Se llama a KeyUp una vez por cada vez que se suelta una tecla. Sin embargo, se llama constantemente el Keydown mientras la tecla está desactivada. –

Respuesta

19

dar a este un tiro ...

private void input_KeyDown(object sender, KeyEventArgs e) 
{       
    if(e.KeyData == Keys.Enter) 
    { 
     MessageBox.Show("Pressed enter."); 
    }    
} 
+0

Gracias, eso fue muy útil, suficiente para descubrir la sintaxis real para mí. La sintaxis para mí era: if (e.Key == Key.Enter) // using System.Windows.Input – user2010136

0

También puede hacer esto:

private void input_KeyDown(object sender, KeyEventArgs e) 
    {       
    if(e.KeyCode== Keys.Enter) 
    { 
     //Your business logic here. 
    }    
    } 

La única diferencia con KeyCode vs KeyData es que puede detectar KeyCode combinación con modificadores KeyCode (por ejemplo CTRL , Shift + A) que no necesitas aquí.

Cuestiones relacionadas