c# - 使用 SendKeys 在 c# 中发送数据时来自文本框的输出不正确
问题描述
我正在开发一个 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。它合并输入值。有人知道为什么会这样吗?请让我知道如何解决这个问题。
解决方案
单击发送键 按钮 [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}"); }
在Enter 键上单击仅显示值
private void btnEnter_Click(object sender, EventArgs e)
{
MessageBox.Show("Text Box 1: " + textBox1.Text.ToString() + " - Text Box 2:" + textBox2.Text.ToString());
}`
推荐阅读
- macos - 无法读取桌面的内容:不允许操作 ~ GIMP ~ Mac ~ MacBook ~ macOS Catalina
- javascript - 如何将未选择的值填充到表中的另一个下拉列表中?
- swift - 如何使用本地数据保存子视图 - swift
- node.js - 从 Crontab 运行时,Puppeteer “TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded”
- azure - 删除嵌套日期文件夹 getdate() < 5 date
- python - 从字典列表值中获取值
- docker - 如何在 jenkins 中构建 dotnetcore 项目?
- javascript - 尝试登录时代码返回 net::ERR_EMPTY_RESPONSE。当 true 应该打开 LoggedIn.html 页面
- java - Pentaho 用户控制台缺少用于修改的 Java 脚本值的“MultipartEntityBuilder”
- r - 允许 MLE 中的估计参数因国家/地区而异