使回车键的行为类似于表格上的Tab键

时间:2008-12-08 00:58:55

标签: .net winforms datagridview

是否有一种简单的方法可以在表单上移动控件,与tab键完全相同?这包括在datagridview等上移动单元格。

3 个答案:

答案 0 :(得分:2)

使用winforms,您应将Form KeyPreview属性设置为true

并且在表格的按键事件中你应该

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == 13)
       GetNextControl(ActiveControl, true).Focus();
}

答案 1 :(得分:2)

因为datagridview句柄是在单元格之间移动的自己的tab事件,所以你必须创建一个自定义数据网格控件并覆盖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

当尝试通过数据网格单元格进行制表时,这会将输入键作为制表键处理, 如果你还需要在表格上处理标签,你必须做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

您只需添加对活动控件类型的检查,否则表单将停止您的自定义数据网格标签代码的工作。

答案 2 :(得分:0)

player_info.name
player_info.score