DataGridView.ProcessDataGridViewKey(KeyEventArgs) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
パラメーター
押されたキーに関する情報を格納します。
戻り値
キーが処理された場合は true
。それ以外の場合は false
。
例外
キーを押すとコントロールが編集モードに切り替わる可能性がありますが、現在のセルの EditType プロパティは、Control から派生して IDataGridViewEditingControl を実装するクラスを示しません。
この操作を行うと、本来はセル値がコミットされるか、または編集モードに切り替わるところですが、データ ソースのエラーのためにその操作は実行できず、DataError イベントのハンドラーがない状態か、ハンドラーが ThrowException プロパティを true
に設定している状態になります。
- または -
DELETE キーにより 1 つ以上の行が削除されますが、データ ソースのエラーによって削除ができなくなり、DataError イベントのハンドラーがないか、またはハンドラーが ThrowException プロパティを true
に設定しているかのいずれかの状態になります。
例
次のコード例では、 メソッドと ProcessDialogKey メソッドをオーバーライドしてサブクラス内の ENTER キーのDataGridView動作を変更する方法を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
注釈
このメソッドは、押されたキーに適したキー処理メソッド (F2 キーが押された場合のメソッドなど) を呼び出し、 ProcessF2Key そのメソッドの戻り値を返します。
注意 (継承者)
このメソッドをオーバーライドする場合、コントロールは キーを処理したことを示すために を返す true
必要があります。 コントロールによって処理されないキーの場合は、このメソッドの基本バージョンの結果を返します。
適用対象
こちらもご覧ください
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示