Export (0) Print
Expand All
Expand Minimize

DataGridView.ProcessDialogKey Method

Processes keys, such as the TAB, ESCAPE, ENTER, and ARROW keys, used to control dialog boxes.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

protected override bool ProcessDialogKey (
	Keys keyData
)
protected boolean ProcessDialogKey (
	Keys keyData
)
protected override function ProcessDialogKey (
	keyData : Keys
) : boolean
Not applicable.

Parameters

keyData

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

Return Value

true if the key was processed; otherwise, false.

Exception typeCondition

InvalidCastException

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.

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.

This method is called in edit mode to handle keyboard input that is not handled by the hosted editing control.

If a key press is determined to not be an input key, it will be sent to the base class for processing.

Notes to Inheritors: When overriding this method, a control should return true to indicate that it has processed the key. For keys that are not processed by the control, return the result of the base version of this method.

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
{
    [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);
    }

  • UIPermission  for using all windows and user events. Demand value: LinkDemand. Permission value: AllWindows
  • UIPermission  for using all windows and user events when the TAB key is pressed. Demand value: Demand. Permission value: AllWindows

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

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft