DataGridView.ProcessDataGridViewKey(KeyEventArgs) Método

Definición

Procesa las teclas usadas para navegar en el control 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

Parámetros

e
KeyEventArgs

Contiene información sobre la tecla que se presionó.Contains information about the key that was pressed.

Devoluciones

Es true si la tecla se procesó; en caso contrario, es false.true if the key was processed; otherwise, false.

Excepciones

La tecla presionada provocaría que el control accediese al modo de edición, pero la propiedad EditType de la celda actual no indica una clase derivada de Control e implementa 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.

Esta acción podría confirmar un valor de celda o provocar el acceso al modo de edición, pero un error en el origen de datos impide la acción y no hay ningún controlador para el evento DataError o el controlador estableció la propiedad ThrowException en 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.

O bien-or- La tecla Suprimir eliminaría una o varias filas, pero un error en el origen de datos impide la eliminación y no hay ningún controlador para el evento DataError o el controlador ha establecido la propiedad ThrowException en 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.

Ejemplos

En el ejemplo de código siguiente se muestra cómo cambiar el comportamiento de la tecla entrar en una subclase DataGridView invalidando los métodos ProcessDataGridViewKey y 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. En el ejemplo, la tecla entrar tiene el mismo comportamiento que la tecla flecha derecha, lo que facilita que un usuario edite varias celdas en una sola fila de datos.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

Comentarios

Este método llama al método de procesamiento de claves adecuado a la tecla presionada (por ejemplo, el método ProcessF2Key cuando se presiona F2) y devuelve el valor devuelto de ese método.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.

Notas a los desarrolladores de herederos

Al reemplazar este método, un control debe devolver true para indicar que ha procesado la clave.When overriding this method, a control should return true to indicate that it has processed the key. En el caso de las claves no procesadas por el control, devuelva el resultado de la versión base de este método.For keys that are not processed by the control, return the result of the base version of this method.

Seguridad

SecurityPermission
para llamar a código no administrado.for calling unmanaged code. Valor de petición: LinkDemand.Demand value: LinkDemand. Valor de permiso: UnmanagedCodePermission value: UnmanagedCode

Se aplica a

Consulte también: