Неправильный вывод из текстового поля при использовании SendKeys для отправки данных в c # - PullRequest
0 голосов
/ 27 марта 2019

Я занимаюсь разработкой приложения winForm, которое отправляет значения в текстовое поле другого приложения (java-приложения) с помощью sendkeys.

ниже - мой код

    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 голосов
/ 27 марта 2019
  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());
    }`
...