我正在开发一个winForm应用程序,该应用程序使用sendkeys将值发送到不同应用程序(java应用程序)的文本框。
下面是我的代码
SendKeys.Send("abcd".ToUpper().Trim());
Thread.Sleep(50);
//it will send tab key to focus next textbox
SendKeys.Send("{TAB}");
Thread.Sleep(50);
SendKeys.Send("efgh".ToUpper().Trim());
//send tab to get focus on button
SendKeys.Send("{TAB}");
// it will send key "Enter" for mouse click
SendKeys.Send("{ENTER}");
,但是sendKeys将错误的数据发送到文本框。 期望输出应为 abcd 至 textbox1 ,而 efgh 至 textbox2 。但有时我会 abcde 到 texbox1 ,而 fgh 到 textbox2 。合并输入值。 有谁知道为什么会这样吗? 请让我知道我该如何解决。
答案 0 :(得分:0)
在发送键按钮上单击[TabIndex:0],我添加了一个选项卡,将焦点导航到下一个control
[焦点到TextBox1
] form
然后完成了您要实现的目标。
private void btnSendKey_Click(object sender, EventArgs e)
{
SendKeys.Send("{TAB}");
Thread.Sleep(50);
SendKeys.Send("abcd".ToUpper().Trim());
Thread.Sleep(50);
//it will send tab key to focus next textbox
SendKeys.Send("{TAB}");
Thread.Sleep(50);
SendKeys.Send("efgh".ToUpper().Trim());
//send tab to get focus on button
SendKeys.Send("{TAB}");
// it will send key "Enter" for mouse click
SendKeys.Send("{ENTER}");
}
在输入键上,单击仅显示值
private void btnEnter_Click(object sender, EventArgs e)
{
MessageBox.Show("Text Box 1: " + textBox1.Text.ToString() + " - Text Box 2:" + textBox2.Text.ToString());
}`