vba - 如何仅在 VBA Access 中捕获 vbKeyReturn
问题描述
我textbox
在 a 中有一个控件,subForm
它是 a singleForm
。但是,当我按下enter
键时,它会添加一个new record
,而前一个会record
隐藏起来。我form property
已经设置为current record
.
我使用下面的代码来捕获enter
密钥,这很有效。
Private Sub txt_1_KeyDown (KeyCode As Intger, Shift as Integer)
Select case KeyCode
Case vbKeyCode
KeyCode = 0
Me.parent.Combo.SetFocus
End Select
End Sub
但是,现在我无法在其中添加new line
using Ctrl + Enter
,textbox
因为一旦我按下代码就会触发enter
。有人可以帮助如何更改上面的代码,以便它只捕获enter
key 并保持默认的 Access 行为,即在按下时添加新行Ctrl + Enter
。
解决方案
您将需要一个条件表达式测试:
- 键(EnterASCII 字符 13)已被按下
- 事件处理程序的 Shift 参数为零,表示没有Ctrl, Shift,Alt已与Enter键一起按下。
代码可能如下所示:
Private Sub txt_1_KeyDown(KeyCode As Intger, Shift As Integer)
If KeyCode = 13 And Shift = 0 Then
KeyCode = 0
Me.Parent.Combo.SetFocus
End If
End Sub
推荐阅读
- javascript - 线程“main”中的异常 java.util.UnknownFormatConversionException: Conversion = '*'
- css - 包装高度可根据屏幕分辨率调整
- graphql - UseSelection 导致触发额外的 sql 语句
- c++ - 2 次方 2 n 次不正确
- flutter - 无法将键和布尔值添加到嵌套列表中
- swift - 如何在 root swift 的高度变化的另一个视图中显示/隐藏视图?
- javascript - 使用 innerHTML 将 Vuetify 标签添加到 div 后编译它
- javascript - 将日期(Ymd)传递给javascript中的函数变量
- angular - 为什么不能访问数组元素中的特定对象?
- typescript - 是否可以在 Typescript 中为接口定义动态类型?