2010-07-15 2 views
0

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

Задача: В текстовом поле ничего не происходит.

Код:

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); 

      }   
    } 

Гита.

ответ

0

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

0

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

+1

Я создаю виртуальную клавиатуру. – Geeth

+0

А что мешает вам установить свойство Text? –

+0

, нуждающийся в реализации, которая может использоваться повторно для других элементов управления, кроме TextBox, например ... – kneo

Смежные вопросы