发送按键到插入符号

问题描述 投票:0回答:1

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

vba
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.