两个项目保持焦点

Two items maintaining focus

我需要找到两个不同的项目来保持焦点以触发 textbox.KeyPress 事件。我有一个文本框,当获得焦点时,它会弹出一个数字小键盘的表单,该表单会触发发送键命令,我需要通过 textbox.KeyPress 事件读取该命令以填充文本框

This is on a popup form that has buttons to click

Private Sub Number1_Click(sender As System.Object, e As System.EventArgs) Handles Number1.Click
  SendKeys.Send("1")
End Sub

This is on a different form that I need the sendkeys.send to populate

Private Sub TextBox_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox.KeyPress
      'Code goes here
End Sub

在调用 SendKeys 之前,将焦点设置在将获取密钥的文本框上。您将需要文本框所在表单的实例变量。此变量必须在您发送密钥的表单范围内。如果另一个表单是从执行 SendKeys 语句的同一表单启动的,则可以使用 class 成员级变量。否则,使用在模块中声明的全局变量。

'Declaration
Public frm2 as Form2

'Show Form2
frm2 = new Form2()
frm2.Show()

'Click handler
Private Sub Number1_Click(sender As System.Object, e As System.EventArgs) Handles Number1.Click
    frm2.TextBox.Focus()
    Application.DoEvents() 'Sometimes needed
    SendKeys.Send("1")
End Sub