DataGridView.ProcessRightKey(Keys) メソッド

定義

→キーを処理します。

protected:
 bool ProcessRightKey(System::Windows::Forms::Keys keyData);
protected bool ProcessRightKey (System.Windows.Forms.Keys keyData);
member this.ProcessRightKey : System.Windows.Forms.Keys -> bool
Protected Function ProcessRightKey (keyData As Keys) As Boolean

パラメーター

keyData
Keys

処理するキーを表す Keys 値のビットごとの組み合わせ。

戻り値

キーが処理された場合は true。それ以外の場合は false

例外

本来は右矢印キーによってコントロールが編集モードに切り替わるところですが、新しい現在のセルの EditType プロパティは、Control から派生して IDataGridViewEditingControl を実装するクラスを示しません。

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

次のコード例では、 メソッドと ProcessDialogKey メソッドをオーバーライドしてサブクラス内DataGridViewの ENTER キーの動作を変更する方法をProcessDataGridViewKey示します。 この例では、ENTER キーの動作は→キーと同じであるため、ユーザーは 1 行のデータで複数のセルを簡単に編集できます。

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

適用対象

こちらもご覧ください