2012-08-04 18 views
10

Zasadniczo chcę móc wywołać zdarzenie po naciśnięciu klawisza ENTER. Próbowałem już tego:Jak sprawdzić, kiedy naciśnięto klawisz Enter w TextBox?

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

Ale MessageBox nigdy się nie wyświetla. Jak mogę to zrobić?

+6

To może być dobry pomysł, aby zrobić to w KeyUp (w zależności od okoliczności). KeyUp jest wywoływane raz za każdym razem, gdy klucz jest zwalniany, jednak keydown jest wywoływany ciągle, gdy klawisz jest wciśnięty. –

Odpowiedz

19

Daj ten strzał ...

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

Dziękuję, to było bardzo przydatne, wystarczy, aby dowiedzieć się, jaka jest rzeczywista składnia dla mnie. Składnia była dla mnie: if (e.Key == Key.Enter) // using System.Windows.Input – user2010136

0

Można też to zrobić:

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

Jedyna różnica z KeyCode vs KeyData jest to, że można wykryć KeyCode modyfikatorów kombinacji z KeyCode (np Ctrl , Shift + A), których tutaj nie potrzebujesz.