我在MS Access数据库中有一个备注字段,可以在其中创建备注。我经常在这个备注字段中使用项目符号列表,该字段显示在一个带有大文本框的窗体上。
当按下Tab键时,MS Access的默认设置是循环到下一个控件,然而,当我编辑一个“备注”(备注字段类型)文本框时,我想要缩进这一行。
我已经能够“捕捉”the键并从命令栏对象执行"IndentIncrease“。(使用文本框的KeyPress事件“捕捉”所需的Tab键,并在表单中的所有对象上关闭tabstop )。
但是,这会缩进字段的底部行,即使光标位于中间的某个位置。使用鼠标单击功能区的文本格式部分中的“增加缩进”按钮可以很好地缩进功能区的所需行。
有没有办法让我的代码捕捉tab键并缩进我的memo字段的正确行?
Private Sub tbNoteEditor_KeyPress(KeyAscii As Integer)
If KeyAscii = 9 Then
Application.CommandBars.ExecuteMso ("IndentIncrease")
End If
End Sub发布于 2019-12-23 12:44:43
在本例中,您需要的是KeyDown事件,而不是KeyPress。KeyPress表示正在键入的字符,但Tab键并不总是这样。KeyDown会抓取任何钥匙。此外,如果您要使用Tab键来增加缩进级别,则可能还需要使用Shift-Tab组合键来降低缩进级别。而且,您不需要在整个表单中关闭TabStop。:)
Private Sub tbNoteEditor_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 9 Then
If (Shift And acShiftMask) > 0 Then
Application.CommandBars.ExecuteMso ("IndentDecrease")
Else
Application.CommandBars.ExecuteMso ("IndentIncrease")
End If
KeyCode = 0
End If
End Sub https://stackoverflow.com/questions/59361199
复制相似问题