我需要找到两个不同的项目来保持焦点以触发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
答案 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