DataGridView.ProcessDataGridViewKey(KeyEventArgs) Méthode

Définition

Traite les touches utilisées pour naviguer dans le DataGridView.Processes keys used for navigating in the DataGridView.

protected:
 virtual bool ProcessDataGridViewKey(System::Windows::Forms::KeyEventArgs ^ e);
protected virtual bool ProcessDataGridViewKey (System.Windows.Forms.KeyEventArgs e);
abstract member ProcessDataGridViewKey : System.Windows.Forms.KeyEventArgs -> bool
override this.ProcessDataGridViewKey : System.Windows.Forms.KeyEventArgs -> bool
Protected Overridable Function ProcessDataGridViewKey (e As KeyEventArgs) As Boolean

Paramètres

e
KeyEventArgs

Contient des informations à propos de la touche enfoncée.Contains information about the key that was pressed.

Retours

true si la touche a été traitée ; sinon, false.true if the key was processed; otherwise, false.

Exceptions

La touche activée provoque l’entrée du contrôle en mode d’édition, mais la propriété EditType de la cellule active n’indique pas une classe qui dérive de Control et implémente IDataGridViewEditingControl.The key pressed would cause the control to enter edit mode, but the EditType property of the current cell does not indicate a class that derives from Control and implements IDataGridViewEditingControl.

Cette opération permet de valider une valeur de cellule ou d’activer le mode édition, mais une erreur dans la source de données bloque l’opération : soit il n’existe aucun gestionnaire pour l’événement DataError, soit le gestionnaire a défini la propriété ThrowException sur true.This action would commit a cell value or enter edit mode, but an error in the data source prevents the action and either there is no handler for the DataError event or the handler has set the ThrowException property to true.

- ou --or- La touche Suppression supprime une ou plusieurs lignes, mais une erreur dans la source de données empêche la suppression et il n’existe aucun gestionnaire pour l’événement DataError ou le gestionnaire a défini la propriété ThrowException avec la valeur true.The DELETE key would delete one or more rows, but an error in the data source prevents the deletion and either there is no handler for the DataError event or the handler has set the ThrowException property to true.

Exemples

L’exemple de code suivant montre comment modifier le comportement de la touche entrée dans une sous-classe DataGridView en remplaçant les méthodes ProcessDataGridViewKey et ProcessDialogKey.The following code example demonstrates how to change the behavior of the ENTER key in a DataGridView subclass by overriding the ProcessDataGridViewKey and ProcessDialogKey methods. Dans l’exemple, la touche entrée a le même comportement que la touche flèche droite, ce qui permet à un utilisateur de modifier plus facilement plusieurs cellules dans une seule ligne de données.In the example, the ENTER key has the same behavior as the RIGHT ARROW key, making it easier for a user to edit multiple cells in a single row of data.

public class CustomDataGridView : DataGridView
{
    [System.Security.Permissions.UIPermission(
        System.Security.Permissions.SecurityAction.LinkDemand,
        Window = System.Security.Permissions.UIPermissionWindow.AllWindows)]
    protected override bool ProcessDialogKey(Keys keyData)
    {
        // Extract the key code from the key value. 
        Keys key = (keyData & Keys.KeyCode);

        // Handle the ENTER key as if it were a RIGHT ARROW key. 
        if (key == Keys.Enter)
        {
            return this.ProcessRightKey(keyData);
        }
        return base.ProcessDialogKey(keyData);
    }

    [System.Security.Permissions.SecurityPermission(
        System.Security.Permissions.SecurityAction.LinkDemand, Flags = 
        System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
    protected override bool ProcessDataGridViewKey(KeyEventArgs e)
    {
        // Handle the ENTER key as if it were a RIGHT ARROW key. 
        if (e.KeyCode == Keys.Enter)
        {
            return this.ProcessRightKey(e.KeyData);
        }
        return base.ProcessDataGridViewKey(e);
    }
}
Public Class CustomDataGridView
    Inherits DataGridView

    <System.Security.Permissions.UIPermission( _
        System.Security.Permissions.SecurityAction.LinkDemand, _
        Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _
    Protected Overrides Function ProcessDialogKey( _
        ByVal keyData As Keys) As Boolean

        ' Extract the key code from the key value. 
        Dim key As Keys = keyData And Keys.KeyCode

        ' Handle the ENTER key as if it were a RIGHT ARROW key. 
        If key = Keys.Enter Then
            Return Me.ProcessRightKey(keyData)
        End If

        Return MyBase.ProcessDialogKey(keyData)

    End Function

    <System.Security.Permissions.SecurityPermission( _
        System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
        System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
    Protected Overrides Function ProcessDataGridViewKey( _
        ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean

        ' Handle the ENTER key as if it were a RIGHT ARROW key. 
        If e.KeyCode = Keys.Enter Then
            Return Me.ProcessRightKey(e.KeyData)
        End If

        Return MyBase.ProcessDataGridViewKey(e)

    End Function

End Class

Remarques

Cette méthode appelle la méthode de traitement des clés appropriée à la touche enfoncée (par exemple, la méthode ProcessF2Key quand l’utilisateur appuie sur F2) et retourne la valeur de retour de cette méthode.This method calls the key-processing method appropriate to the key pressed (for example, the ProcessF2Key method when F2 is pressed) and returns the return value of that method.

Notes pour les héritiers

Lors de la substitution de cette méthode, un contrôle doit retourner true pour indiquer qu’il a traité la clé.When overriding this method, a control should return true to indicate that it has processed the key. Pour les clés qui ne sont pas traitées par le contrôle, retournez le résultat de la version de base de cette méthode.For keys that are not processed by the control, return the result of the base version of this method.

Sécurité

SecurityPermission
pour appeler du code non managé.for calling unmanaged code. Valeur de la demande : LinkDemand.Demand value: LinkDemand. Valeur d’autorisation : UnmanagedCodePermission value: UnmanagedCode

S’applique à

Voir aussi