在VBA窗体中按回车键后如何将焦点保持在文本框中?
此代码将文本添加到列表框,我想将焦点保持在文本框上以准备接收另一个项目。
当我单击“添加”按钮时,它将文本添加到列表框并将焦点返回到文本框,但是当我按 Enter 时,它不会,即使它使用相同的代码。有什么建议吗?
这是我的文本框代码:
Private Sub TxtOtherAsset_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
CmdAddOtherAsset_Click
End If
End Sub
这是我的按钮的代码:
Private Sub CmdAddOtherAsset_Click()
If TxtOtherAsset.Text <> "" Then
ListAddedAssets.AddItem TxtOtherAsset.Text
TxtOtherAsset.Text = ""
End If
TxtOtherAsset.SetFocus
End Sub
我尝试了多种方法,但无法将焦点返回到文本框。按 Enter 后,焦点将转到 TabIndex 中的下一个。
我的想法是:尝试将 KeyCode 设置为 0。另外,使用 KeyCodeConstants 类(来自 Core 库)来确定 Enter 键的值。
像这样:
If KeyCode = KeyCodeConstants.vbKeyReturn Then
CmdAddOtherAsset_Click
KeyCode = 0
End If
删除您尝试将焦点设置在另一个子项目上的行(TxtOtherAsset.SetFocus
).
希望对你有帮助。我没有测试它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)