Lire en anglais

Partager via


Control.KeyPress Événement

Définition

Se produit en cas de pression sur une touche Espace ou Retour arrière alors que le contrôle a le focus.

C#
public event System.Windows.Forms.KeyPressEventHandler KeyPress;
C#
public event System.Windows.Forms.KeyPressEventHandler? KeyPress;

Type d'événement

Exemples

L’exemple de code suivant utilise l’événement KeyPress pour empêcher les caractères d’entrer dans le contrôle.

C#
// 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;
    }
}

L’exemple de code suivant montre l’ordre d’élévation KeyDowndes événements , KeyUp et KeyPress , ainsi que la façon d’y inscrire des gestionnaires d’événements.

C#
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
        textBox2.Multiline = true;
        textBox2.ScrollBars = ScrollBars.Both;

        //Setup events that listens on keypress
        textBox1.KeyDown += TextBox1_KeyDown;
        textBox1.KeyPress += TextBox1_KeyPress;
        textBox1.KeyUp += TextBox1_KeyUp;
    }

    // Handle the KeyUp event to print the type of character entered into the control.
    private void TextBox1_KeyUp(object sender, KeyEventArgs e)
    {
        textBox2.AppendText( $"KeyUp code: {e.KeyCode}, value: {e.KeyValue}, modifiers: {e.Modifiers}" + "\r\n");
    }

    // Handle the KeyPress event to print the type of character entered into the control.
    private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        textBox2.AppendText( $"KeyPress keychar: {e.KeyChar}" + "\r\n");
    }

    // Handle the KeyDown event to print the type of character entered into the control.
    private void TextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        textBox2.AppendText( $"KeyDown code: {e.KeyCode}, value: {e.KeyValue}, modifiers: {e.Modifiers}" + "\r\n");
    }
}

Remarques

Les événements clés se produisent dans l’ordre suivant :

  1. KeyDown

  2. KeyPress

  3. KeyUp

L’événement KeyPress n’est pas déclenché par des touches autres que l’espace et l’arrière; toutefois, les touches non caractère déclenchent les KeyDown événements et KeyUp .

Utilisez la KeyChar propriété pour échantillonner des séquences de touches au moment de l’exécution et pour consommer ou modifier un sous-ensemble de séquences de touches courantes.

Pour gérer les événements clavier uniquement au niveau du formulaire et ne pas permettre à d’autres contrôles de recevoir des événements clavier, définissez la propriété dans la KeyPressEventArgs.Handled méthode de gestion des événements de KeyPress votre formulaire sur true.

Pour plus d'informations sur la gestion des événements, voir gestion et déclenchement d’événements.

S’applique à

Produit Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi