DataGridView.ProcessDataGridViewKey(KeyEventArgs) Método

Definición

Procesa las claves usadas para navegar en .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 ha presionado.

Devoluciones

true si se procesó la clave; de lo contrario, false.

Excepciones

La tecla presionada provocaría que el control entrara en modo de edición, pero la EditType propiedad de la celda actual no indica una clase que deriva de Control e implementa IDataGridViewEditingControl.

Esta acción confirmaría un valor de celda o entraría en modo de edición, pero un error en el origen de datos impide la acción y no hay ningún controlador para el DataError evento o el controlador ha establecido la ThrowException propiedad trueen .

O bien

La clave DELETE 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 DataError evento o el controlador ha establecido la ThrowException propiedad trueen .

Ejemplos

En el ejemplo de código siguiente se muestra cómo cambiar el comportamiento de la clave ENTER en una DataGridView subclase reemplazando los ProcessDataGridViewKey métodos y ProcessDialogKey . 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.

public class CustomDataGridView : DataGridView
{
    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);
    }

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

Notas a los desarrolladores de herederos

Al invalidar este método, un control debe volver true para indicar que ha procesado la clave. En el caso de las claves que el control no procesa, devuelva el resultado de la versión base de este método.

Se aplica a

Consulte también