DataGridView.ProcessDialogKey(Keys) メソッド
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Tab キー、Esc キー、Enter キー、方向キーなど、ダイアログ ボックスの制御に使用されるキーを処理します。
protected:
override bool ProcessDialogKey(System::Windows::Forms::Keys keyData);
protected override bool ProcessDialogKey (System.Windows.Forms.Keys keyData);
override this.ProcessDialogKey : System.Windows.Forms.Keys -> bool
Protected Overrides Function ProcessDialogKey (keyData As Keys) As Boolean
キーが処理された場合は true
。それ以外の場合は false
。
キーを押すとコントロールが編集モードに切り替わる可能性がありますが、現在のセルの EditType プロパティは、Control から派生して IDataGridViewEditingControl を実装するクラスを示しません。
この操作を行うと、本来はセル値がコミットされるか、または編集モードに切り替わるところですが、データ ソースのエラーのためにその操作は実行できず、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
このメソッドは、ホストされている編集コントロールによって処理されないキーボード入力を処理するために、編集モードで呼び出されます。
キーを押すと入力キーでないと判断された場合は、処理のために基底クラスに送信されます。
このメソッドをオーバーライドする場合、コントロールは キーを処理したことを示すために を返す true
必要があります。 コントロールによって処理されないキーの場合は、このメソッドの基本バージョンの結果を返します。
製品 | バージョン |
---|---|
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Windows Desktop | 3.0, 3.1, 5, 6, 7, 8, 9 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。