是否有一种简单的方法可以在表单上移动控件,与tab键完全相同?这包括在datagridview等上移动单元格。
答案 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