43 votes

.NET TextBox - Gestion de la touche Entrée

Quelle est définitivement la meilleure façon d'effectuer une action basée sur la saisie par l'utilisateur de la touche Entrée ( Keys.Enter ) dans un .NET TextBox , en supposant la propriété de la saisie de la touche qui conduit à la suppression de la touche Entrée à la zone de texte elle-même (e.Handled = true) ?

Supposons pour les besoins de cette question que le comportement souhaité n'est pas d'appuyer sur le bouton par défaut du formulaire, mais plutôt un autre traitement personnalisé qui devrait se produire.

65voto

It Grunt Points 1993

Ajouter un événement de pression de touche et intercepter la touche Entrée

Programmatiquement, cela ressemble à ceci :

 //add the handler to the textbox
this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(CheckEnterKeyPress);

Ensuite, ajoutez un gestionnaire dans le code...

 private void CheckEnterKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
        if (e.KeyChar == (char)Keys.Return)

        {
           // Then Do your Thang
        }
}

22voto

R.S.K Points 431

Afin de lier la fonction à l'événement d'appui sur la touche de la zone de texte, ajoutez le code suivant dans le designer.cs du formulaire :

  this.textbox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.OnKeyDownHandler);

Définissez maintenant la fonction 'OnKeyDownHandler' dans le fichier cs de la même forme :

 private void OnKeyDownHandler(object sender, KeyEventArgs e)
{

    if (e.KeyCode == Keys.Enter)
    {
       //enter key has been pressed
       // add your code
    }

}

8voto

Nate Points 14101

Vous pouvez le déposer dans l'événement FormLoad :

 textBox1.KeyPress += (sndr, ev) => 
{
    if (ev.KeyChar.Equals((char)13))
    {
        // call your method for action on enter
        ev.Handled = true; // suppress default handling
    }
};

1voto

Si vous souhaitez qu'un bouton gère Enter pendant l'exécution du programme , pointez simplement la propriété AcceptButton du formulaire sur le bouton.

Exemple : this.AcceptButton = StartBtn;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X