DataGridView.ProcessDataGridViewKey(KeyEventArgs) DataGridView.ProcessDataGridViewKey(KeyEventArgs) DataGridView.ProcessDataGridViewKey(KeyEventArgs) DataGridView.ProcessDataGridViewKey(KeyEventArgs) Method

定義

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

パラメーター

e
KeyEventArgs KeyEventArgs KeyEventArgs KeyEventArgs

押されたキーに関する情報を格納します。Contains information about the key that was pressed.

戻り値

キーが処理された場合は true。それ以外の場合は falsetrue if the key was processed; otherwise, false.

例外

キーを押すとコントロールが編集モードに切り替わる可能性がありますが、現在のセルの EditType プロパティは、Control から派生して 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.

この操作を行うと、本来はセル値がコミットされるか、または編集モードに切り替わるところですが、データ ソースのエラーのためにその操作は実行できず、DataError イベントのハンドラーがない状態か、ハンドラーが ThrowException プロパティを 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.

または-or- DELETE キーにより 1 つ以上の行が削除されますが、データ ソースのエラーによって削除ができなくなり、DataError イベントのハンドラーがないか、またはハンドラーが ThrowException プロパティを 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.

次のコード例は、メソッドDataGridView ProcessDataGridViewKeyProcessDialogKeyメソッドをオーバーライドすることによって、サブクラスの ENTER キーの動作を変更する方法を示しています。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. この例では、ENTER キーの動作が→キーと同じであるため、ユーザーは1行のデータで複数のセルを簡単に編集できます。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

注釈

このメソッドは、押されたキーに適したキー処理メソッド (たとえばProcessF2Key 、F2 が押されたときのメソッド) を呼び出し、そのメソッドの戻り値を返します。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.

注意 (継承者)

このメソッドをオーバーライドする場合、コントロールはtrue 、キーが処理されたことを示すためにを返す必要があります。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.

セキュリティ

SecurityPermission
アンマネージコードを呼び出すための。for calling unmanaged code. 要求の値LinkDemand:。Demand value: LinkDemand. アクセス許可値:UnmanagedCodePermission value: UnmanagedCode

適用対象

こちらもご覧ください