Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

DataGridView.ProcessRightKey Method

Processes the RIGHT ARROW key.

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

'Declaration
<SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags := SecurityPermissionFlag.UnmanagedCode)> _
Protected Function ProcessRightKey ( _
	keyData As Keys _
) As Boolean

Parameters

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.

ExceptionCondition
InvalidCastException

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.

Exception

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
    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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Show:
© 2015 Microsoft