2009-11-16 4 views

Répondre

5

Le meilleur événement pour gérer ici est KeyDown. KeyDown se déclenche lorsque l'utilisateur saisit explicitement dans la boîte ou d'autres composants simule la frappe des utilisateurs en envoyant des messages au TextBox. Cela correspond au scénario que vous avez décrit.

Si par contre vous choisissez de répondre à l'événement TextChanged, vous répondrez à chaque fois que le texte est modifié (par l'utilisateur ou par le code). Cela signifie que votre événement sera déclenché si je dis explicitement

someBox.Text = Environment.NewLine; 
8

Eh oui, en cas keydown:

if (e.KeyCode == Keys.Enter) 
{ 
    // do stuff 
} 
2

L'événement KeyPress fonctionne pour cela:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.Enter) 
    { 
     MessageBox.Show("Enter pressed!"); 
    } 
} 
1

Cela dépend du reste de votre formulaire. Lorsque vous avez un bouton Accepter, [Enter] dans (presque) n'importe quel contrôle déclenchera ce bouton et il serait préférable de ne pas le manipuler séparément dans les Textbox. Inversement, si vous voulez gérer une ou plusieurs boîtes de texte, n'utilisez pas un bouton Accepter.

Questions connexes