Имитация событий клавиатуры в текстовом поле WPF - PullRequest
0 голосов
/ 15 июля 2010

У меня есть текстовое поле и 4 кнопки на моей странице (A, B, Delete и Enter). Если я нажимаю на кнопку, он должен отправить ключевое событие в текстовое поле.

Проблема: В текстовом поле не выполняется никаких действий.

Код:

void buttonElement_Click(object sender, RoutedEventArgs e)
    {
        // create variable for holding string
        String sendString = "";           
            // stop all event handling
            e.Handled = true;

            // set sendstring to key
            sendString = ((Button)sender).CommandParameter.ToString();                              

            // if something to send
            if (!String.IsNullOrEmpty(sendString))
            {
                // if sending a string
                if (sendString.Length > 1)
                {
                    // add {}
                    sendString = "{" + sendString + "}";
                }

                    // set keyboard focus
                System.Windows.Input.Keyboard.Focus(this.txtSearch);                                                         
               System.Windows.Forms.SendKeys.SendWait(sendString);

            }           
    }

Гит.

Ответы [ 2 ]

0 голосов
/ 15 июля 2010

Даниэль Роуз прав. Разве не будет так проще? Вы берете свойство Text текстового поля и при нажатии кнопки добавляете правильный символ к этой строке, когда кнопка удаления нажимается, просто стирайте последний символ этой строки.

0 голосов
/ 15 июля 2010

Почему вы пытаетесь отправить ключевое событие в TextBox вместо установки его свойства Text?

...