Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais
Cette documentation est archivée et n’est pas conservée.

Control.KeyDown, événement

Se produit lorsqu'une touche est enfoncée alors que le contrôle a le focus.

Espace de noms :  System.Windows.Forms
Assembly :  System.Windows.Forms (dans System.Windows.Forms.dll)

public event KeyEventHandler KeyDown

Les événements de touche se produisent dans l'ordre suivant :

  1. KeyDown

  2. KeyPress

  3. KeyUp

Pour gérer des événements du clavier uniquement au niveau du formulaire et ne pas autoriser d'autres contrôles à recevoir ces événements, affectez la valeur true à la propriété KeyPressEventArgs.Handled dans la méthode de gestion d'événements KeyPress du formulaire. Certaines touches, telles que TAB, RETOUR, ÉCHAP et les touches de direction sont gérées automatiquement par les contrôles. Pour que ces touches déclenchent l'événement KeyDown, vous devez substituer la méthode IsInputKey dans chaque contrôle du formulaire. Le code qui permet de substituer IsInputKey doit déterminer si l'une des touches spéciales est enfoncée et retourner une valeur true. Au lieu de substituer la méthode IsInputKey, vous pouvez gérer l'événement PreviewKeyDown et affecter à la propriété IsInputKey la valeur true. Pour obtenir un exemple de code complet, consultez l'événement PreviewKeyDown.

Pour plus d'informations sur la gestion d'événements, consultez Consommation d'événements.

L'exemple de code suivant utilise l'événement KeyDown pour déterminer le type de caractère entré dans le contrôle.


        // Boolean flag used to determine when a character other than a number is entered.
        private bool nonNumberEntered = false;

        // Handle the KeyDown event to determine the type of character entered into the control.
        private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            // Initialize the flag to false.
            nonNumberEntered = false;

            // Determine whether the keystroke is a number from the top of the keyboard.
            if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
            {
                // Determine whether the keystroke is a number from the keypad.
                if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
                {
                    // Determine whether the keystroke is a backspace.
                    if(e.KeyCode != Keys.Back)
                    {
                        // A non-numerical keystroke was pressed.
                        // Set the flag to true and evaluate in KeyPress event.
                        nonNumberEntered = true;
                    }
                }
            }
            //If shift key was pressed, it's not a number.
            if (Control.ModifierKeys == Keys.Shift) {
                nonNumberEntered = true;
            }
        }

        // This event occurs after the KeyDown event and can be used to prevent
        // characters from entering the control.
        private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {
            // Check for the flag being set in the KeyDown event.
            if (nonNumberEntered == true)
            {
                // Stop the character from being entered into the control since it is non-numerical.
                e.Handled = true;
            }
        }



.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Afficher: