如何实现按回车键时光标从窗体文本框跳转至子窗体文本框
实现回车键跳转至子窗体对应字段的方法
以下以Access窗体场景为例,提供两种可落地的解决方法:
方案一:通过事件代码自定义回车行为
- 打开主窗体设计视图,将主窗体的
KeyPreview属性设置为是(让主窗体优先捕获键盘事件) - 为主窗体添加
KeyDown事件代码:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ' 捕获回车键触发 If KeyCode = vbKeyReturn Then ' 判断当前焦点是否在主窗体的目标触发文本框上 If Screen.ActiveControl.Name = "主窗体最后一个文本框名称" Then ' 跳转至子窗体的指定字段 Me.子窗体容器控件名.Form.子窗体目标字段名.SetFocus ' 取消默认的回车跳转逻辑 KeyCode = 0 End If End If End Sub
- 替换代码中的
主窗体最后一个文本框名称为你需要触发跳转的主窗体文本框名 子窗体容器控件名是主窗体上承载子窗体的控件名称(注意不是子窗体本身的名称)子窗体目标字段名替换为子窗体中要跳转的具体字段名称
方案二:调整Tab顺序实现无代码跳转
如果不想编写代码,可以通过调整Tab键顺序实现:
- 打开主窗体设计视图,点击菜单栏
视图→Tab键顺序 - 在弹出的窗口中,将主窗体的文本框按需求排序,把子窗体控件的Tab顺序放在主窗体目标文本框的后面
- 把主窗体所有文本框的
EnterKeyBehavior属性设置为否(让回车键模拟Tab键的跳转逻辑) - 完成设置后,按回车遍历主窗体文本框到最后一个时,下一次回车会自动跳转到子窗体控件,再按回车即可定位到子窗体的第一个可编辑字段
提示:如果子窗体是数据表视图,跳转后光标会自动定位到第一条记录的第一个可编辑字段;如果是窗体视图,需确保子窗体自身的Tab顺序已正确设置。
内容的提问来源于stack exchange,提问作者Alex Chitiavi
相关产品推荐
相关产品推荐

