按Enter键后继续关注文本框

rub*_*eda 6 vba textbox enter keydown

按Enter键进入VBA表格后如何将焦点保持在文本框中?

此代码将文本添加到列表框中,我希望将焦点放在文本框上以准备接收另一个项目.

当我点击添加按钮时,它会将文本添加到列表框并将焦点返回到文本框,当我按下输入时它不会,甚至很难使用相同的代码.有什么建议吗?

这是我的文本框代码:

Private Sub TxtOtherAsset_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    If KeyCode = 13 Then
        CmdAddOtherAsset_Click
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

这是我按钮的代码:

Private Sub CmdAddOtherAsset_Click()

    If TxtOtherAsset.Text <> "" Then
        ListAddedAssets.AddItem TxtOtherAsset.Text
        TxtOtherAsset.Text = ""
    End If

    TxtOtherAsset.SetFocus

End Sub
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,但我无法将焦点返回到文本框.按Enter键后,焦点将转到TabIndex中的下一个.

One*_*ide 6

从我的头脑:尝试将KeyCode设置为0.此外,使用KeyCodeConstants类(来自Core库)来确定Enter键的值.

像这样:

If KeyCode = KeyCodeConstants.vbKeyReturn Then
    CmdAddOtherAsset_Click
    KeyCode = 0
End If
Run Code Online (Sandbox Code Playgroud)

删除您尝试将焦点设置在另一个子(TxtOtherAsset.SetFocus)上的线.

希望对你有效.我没有测试它.