タブ キーとまったく同じ方法でフォーム上のコントロールを簡単に移動する方法はありますか? これには、datagridview 上のセルの移動などが含まれます。
4918 次
3 に答える
2
winforms を使用して、Form KeyPreview プロパティを true に設定する必要があります
そして、フォームのキープレスイベントで
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
GetNextControl(ActiveControl, true).Focus();
}
于 2008-12-08T01:52:32.100 に答える
2
datagridview ハンドルは、セル間を移動するための独自のタブ イベントであるため、カスタム データグリッド コントロールを作成し、次のように onKeyUp イベントをオーバーライドする必要があります。
Public Class MyCustomDataGrid
Inherits DataGridView
Protected Overrides Sub OnKeyUp(ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter Then
e.Handled = True
Me.ProcessTabKey(Keys.Tab)
Else
MyBase.OnKeyUp(e)
End If
End Sub
End Class
これにより、データグリッドセルをタブで移動しようとすると、Enter キーがタブキーとして処理されます。フォームでもタブを処理する必要がある場合は、Marioh が言ったことを少し変更する必要があります。
Protected Overrides Sub OnKeyUp(ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso Not ActiveControl.GetType() Is GetType(Class1) Then
e.Handled = True
Me.ProcessTabKey(Not e.Shift)
Else
MyBase.OnKeyUp(e)
End If
End Sub
アクティブなコントロールのタイプのチェックを追加するだけで済みます。そうしないと、フォームがカスタム データグリッド タブ コードの動作を停止します。
于 2008-12-08T02:11:08.787 に答える