使用SendKeys在c#

时间:2019-03-27 09:14:01

标签: c# winforms sendkeys

我正在开发一个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 。合并输入值。 有谁知道为什么会这样吗? 请让我知道我该如何解决。

1 个答案:

答案 0 :(得分:0)

  1. 确保正确配置TabIndex属性。例如App

  2. 发送键按钮上单击[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());
    }`