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.PreviewKeyDown, événement

Se produit avant l'événement KeyDown lorsque l'utilisateur appuie sur une touche pendant que le focus est sur ce contrôle.

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

public event PreviewKeyDownEventHandler PreviewKeyDown

Certaines touches, par exemple TAB, RETOUR, ÉCHAP et les touches de direction, sont généralement ignorées par certains contrôles parce qu'ils ne sont pas considérés comme des touches de saisie. Par exemple, un contrôle Button ignore par défaut les touches de direction. Si vous appuyez sur les touches de direction, en général le focus se déplace sur le contrôle précédent ou suivant. Les touches de direction sont considérées des touches de navigation et si vous appuyez sur ces touches, cela ne déclenche pas en général d'événement KeyDown pour un Button. Toutefois, le fait d'appuyer sur les touches de direction pour un Button déclenche l'événement PreviewKeyDown. En gérant l'événement PreviewKeyDown pour un Button et en affectant à la propriété IsInputKey la valeur true, vous pouvez déclencher l'événement KeyDown lorsqu'il est appuyé sur les touches de direction. Toutefois, si vous gérez les touches de direction, le focus ne se déplacera plus sur le contrôle précédent ou suivant.

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

L'exemple de code suivant montre un Button qui inclut un ContextMenuStrip. Lorsque le Button a le focus et que vous appuyez sur les touches de direction HAUT ou BAS, le ContextMenuStrip s'affiche. Le gestionnaire d'événements PreviewKeyDown détecte le moment où les touches de direction HAUT ou BAS sont utilisées et affecte à la propriété IsInputKey la valeur true. Cela déclenche l'événement KeyDown afin que vous puissiez afficher le ContextMenuStrip. Vous ne devez pas mettre de logique dans le gestionnaire d'événements PreviewKeyDown, sauf pour définir la propriété IsInputKey. Au lieu de cela, vous devez mettre votre logique dans le gestionnaire d'événements KeyDown.


public Form1()
{
    InitializeComponent();

    // Form that has a button on it
    button1.PreviewKeyDown +=new PreviewKeyDownEventHandler(button1_PreviewKeyDown);
    button1.KeyDown += new KeyEventHandler(button1_KeyDown);
    button1.ContextMenuStrip = new ContextMenuStrip();
    // Add items to ContextMenuStrip
    button1.ContextMenuStrip.Items.Add("One");
    button1.ContextMenuStrip.Items.Add("Two");
    button1.ContextMenuStrip.Items.Add("Three");
}

// By default, KeyDown does not fire for the ARROW keys
void button1_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.Down:
        case Keys.Up:
            if (button1.ContextMenuStrip != null)
            {
                button1.ContextMenuStrip.Show(button1,
                    new Point(0, button1.Height), ToolStripDropDownDirection.BelowRight);
            }
            break;
    }
}

// PreviewKeyDown is where you preview the key.
// Do not put any logic here, instead use the
// KeyDown event after setting IsInputKey to true.
private void button1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.Down:
        case Keys.Up:
            e.IsInputKey = true;
            break;
    }
}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.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