两个保持焦点的项目

时间:2015-12-23 15:41:08

标签: vb.net winforms textbox

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

  

这是一个弹出窗体,有单击按钮

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

这是另一种形式,我需要sendkeys.send来填充

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

1 个答案:

答案 0 :(得分:1)

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

'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