ProcessRightKey Method
Collapse the table of content
Expand the table of content

DataGridView.ProcessRightKey Method

Processes the RIGHT ARROW key.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
protected bool ProcessRightKey(
	Keys keyData


Type: System.Windows.Forms.Keys

A bitwise combination of Keys values that represents the key or keys to process.

Return Value

Type: System.Boolean
true if the key was processed; otherwise, false.


The RIGHT ARROW key would cause the control to enter edit mode, but the EditType property of the new current cell does not indicate a class that derives from Control and implements IDataGridViewEditingControl.


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 DataGridViewDataErrorEventArgs.ThrowException property to true.

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. 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
        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.SecurityAction.LinkDemand, Flags = 
    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);

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0

Community Additions

© 2015 Microsoft