我有一个0-9的屏幕数字键盘,我试图在用户点击该号码的按钮(实际上是触摸屏键盘)时向按键发送按键。有几个文本框,我想将它发送到当前有插入符号的文本框。我已经尝试了SendKeys.Send("1")
但是没有发送它。这样做的最佳方式是什么?
答案 0 :(得分:1)
您遇到的问题是因为当用户点击您的任何按钮时,该按钮会获得焦点并且文本框失去焦点,因此任何击键都会被发送到具有焦点的控件,即按钮。
一种可能的方法是使用全局变量来存储对最后一个文本框的引用,使其不再关注表单(通过每个文本框的On Exit
或On 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