发送按键到插入符号

时间:2018-03-01 18:59:21

标签: vba

我有一个0-9的屏幕数字键盘,我试图在用户点击该号码的按钮(实际上是触摸屏键盘)时向按键发送按键。有几个文本框,我想将它发送到当前有插入符号的文本框。我已经尝试了SendKeys.Send("1")但是没有发送它。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

您遇到的问题是因为当用户点击您的任何按钮时,该按钮会获得焦点并且文本框失去焦点,因此任何击键都会被发送到具有焦点的控件,即按钮。

一种可能的方法是使用全局变量来存储对最后一个文本框的引用,使其不再关注表单(通过每个文本框的On ExitOn Lost Focus事件),然后使用适当的值填充此存储的文本框的内容,作为每个按钮的On Click事件的一部分。

一个非常简单的例子可能是:

Dim LastTextBox As TextBox

Private Sub TextBox1_Exit(Cancel As Integer)
    Set LastTextBox = TextBox1
End Sub

Private Sub TextBox2_Exit(Cancel As Integer)
    Set LastTextBox = TextBox2
End Sub

Private Sub Button1_Click()
    If Not LastTextBox Is Nothing Then LastTextBox = "1"
End Sub

Private Sub Button2_Click()
    If Not LastTextBox Is Nothing Then LastTextBox = "2"
End Sub