Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

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 des é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.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft